【发布时间】:2020-02-28 01:31:34
【问题描述】:
目前我的异步函数中有一个循环,如下所示:
async function getInfo(){
for(var i=0; i < 550; i++){
await client.decodeRecaptchaV2({
googlekey: 'xxx',
pageurl: 'website.com'
}).then(async function(response) {
await enter(i, response);
});
}
}
我的问题是循环等待 decodeRecaptchaV2 函数完成,然后重复自身而不等待 then 语句中的 enter 函数完成。
我需要循环来运行 decodeRecaptchaV2 函数,然后是 enter 函数,然后重复循环。
感谢任何帮助!
【问题讨论】:
-
a) 我不会使用
.then()模式,如果async/await可用,特别是不要混合使用它们。 b)enter()是您编码的还是您确定它实际上支持 Promise 模式? -
@Sirko enter() 是我自己编码的,是的。我看不到 .then() 模式的另一种解决方法,因为它被 npm 库使用
-
async/await基本上只是使用then()的语法糖。所以你应该可以在这里使用它。如果enter()也是你的,你能添加它的来源吗?很可能问题出在该函数上,因为当前给定的代码看起来不错。 -
enter()是否返回承诺?如果是这样,你可以做return enter(i, response)。如果没有,那么这就是你的问题,因为它需要它才能工作。 -
你可以告诉我们
enter函数的作用。
标签: node.js for-loop asynchronous async-await