前端vue3 实现轮询后端接口 最后获取结果 实现逻辑
我们常用的需要轮询接口 的有 调用三方支付的时候 后端的接口 是异步 的 可能一时半会给不了我们最后的结果 所以我们 需要轮训后端的接口 等到获得接口 再执行 相关的前端逻辑调用前端支付收银台 进行支付这个过程我们需要进行 计算 通过递归 函数的方法 进行实现以上就是我所描述的接口实现 大家可以在实践中使用这个进行测试 实现当前的支付轮训逻辑轮询(Polling)和递归(Recursion)是两种
我们常用的需要轮询接口 的有 调用三方支付的时候 后端的接口 是异步 的 可能一时半会给不了我们最后的结果 所以我们 需要轮训后端的接口 等到获得接口 再执行 相关的前端逻辑
调用前端支付收银台 进行支付
这个过程我们需要进行 计算 通过递归 函数的方法 进行实现
<template>
<div @click="queryResult(1234567890)">测试相关的轮训调用接口的方法</div>
</template>
<script setup>
import { ref, onMounted } from "vue";
const queryLoading = ref(false);
const queryNumber = ref(0);
const queryDone = () => {
queryLoading.value = false;
queryNumber.value = 0;
};
const queryResult = async (batchNo) => {
queryNumber.value++;
if (queryNumber.value > 30) {
message.error("下单失败");
queryDone();
return;
}
queryLoading.value = true;
try {
//调用轮训接口 进行相关的操作
const queryRes = await queryChannelApplyCreateOrderResult({
batchNo,
bizType: 1,
});
if (queryRes.data.handleResult == 2) {
queryDone();
//调用成功的操作
} else if (queryRes.data.handleResult == 1) {
} else {
setTimeout(() => {
queryResult(batchNo);
}, 1000);
}
} catch (error) {
queryDone();
}
};
</script>
以上就是我所描述的接口
实现 大家可以在实践中使用这个进行测试 实现当前的支付轮训逻辑
轮询和递归有什么不同?
轮询(Polling)和递归(Recursion)是两种不同的编程概念,它们用于解决不同类型的问题,并且它们的工作方式也不同。
“轮询”是一种编程技术,用于定期检查某个条件是否满足。在轮询中,程序会定期执行一个函数或方法,以检查某个条件是否满足,例如检查某个文件是否已经准备好,或者检查某个网络请求是否已经完成。轮询通常用于等待某个条件变为真,但它可能会导致性能问题,因为它会不断地执行函数,即使条件已经满足。
“递归”是一种编程技巧,它允许一个函数在其内部调用自身。递归函数通常用于解决可以分解为相似子问题的问题,例如计算阶乘、遍历树或图等。递归函数需要一个基准情况,以防止无限递归。递归是一种强大的工具,但它也可能会导致性能问题,特别是当问题规模较大时。
总的来说,轮询和递归都是解决特定问题的工具,但它们的工作方式和适用场景是不同的。你应该根据你的具体需求选择最合适的工具。
拓展:
程序轮询是什么?
程序轮询(Polling)是一种常见的编程技术,用于定期检查某个条件是否满足。在轮询中,程序会定期执行一个函数或方法,以检查某个条件是否满足,例如检查某个文件是否已经准备好,或者检查某个网络请求是否已经完成。
以下是一个简单的轮询的例子,它每秒检查一次一个变量是否已经达到某个值:
let count = 0;
function checkCount() {
if (count >= 10) {
console.log('Count has reached 10');
clearInterval(intervalId); // 停止轮询
} else {
console.log('Count is still less than 10');
}
}
let intervalId = setInterval(checkCount, 1000); // 每秒执行一次 checkCount 函数
// 模拟 count 的增加
setInterval(() => {
count++;
}, 500);
递归
递归是一种常见的编程技巧,它允许一个函数在其内部调用自身。递归函数通常用于解决可以分解为相似子问题的问题,例如计算阶乘、遍历树或图等。
以下是一个计算阶乘的递归函数的例子:
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5)); // 输出 120
更多推荐
所有评论(0)