在JavaScript中,调用异步函数直到某个条件为真通常涉及到使用循环和异步控制流。以下是几种常见的方法来实现这一需求:
while
循环和 await
async function callAsyncFunctionUntilTrue(asyncFunc, conditionCheck) {
while (true) {
const result = await asyncFunc();
if (conditionCheck(result)) {
return result;
}
}
}
// 示例使用
async function exampleAsyncFunction() {
// 模拟异步操作,返回一个随机数
return new Promise((resolve) => {
setTimeout(() => resolve(Math.random()), 100);
});
}
function conditionCheck(value) {
// 检查条件是否满足,例如值大于0.8
return value > 0.8;
}
callAsyncFunctionUntilTrue(exampleAsyncFunction, conditionCheck)
.then(result => console.log('条件满足:', result))
.catch(error => console.error('发生错误:', error));
Promise
和递归function callAsyncFunctionUntilTrue(asyncFunc, conditionCheck) {
return asyncFunc().then(result => {
if (conditionCheck(result)) {
return result;
} else {
return callAsyncFunctionUntilTrue(asyncFunc, conditionCheck);
}
});
}
// 示例使用与上面相同
async
/await
和 for
循环async function callAsyncFunctionUntilTrue(asyncFunc, conditionCheck) {
for (;;) {
const result = await asyncFunc();
if (conditionCheck(result)) {
return result;
}
}
}
// 示例使用与上面相同
conditionCheck
函数最终会返回 true
,否则会导致无限循环。通过上述方法,你可以有效地在JavaScript中实现调用异步函数直到特定条件为真的逻辑。
领取专属 10元无门槛券
手把手带您无忧上云