【发布时间】:2019-10-02 09:47:21
【问题描述】:
我想在函数完全执行后进行下一次迭代。但是,循环在函数完全执行之前迭代。我用过异步/等待。但没有运气。
function getdata(a,b)
{
var somevalue = '';
request(req,function(){
//somecode
//assign value to 'somevalue'
});
return somevalue;
}
function abc()
{
var value = '';
while(value!=='x')
{
value = getdata(a,b);
}
}
//I've tried this way
async function getdata(a,b)
{
var somevalue = '';
request(req,function(){
//somecode
//assign value to 'somevalue'
});
return somevalue;
}
async function abc()
{
var value = '';
while(value!=='x')
{
value = await getdata(a,b);
}
}
【问题讨论】:
-
您需要承诺
request调用和awaitPromise。否则return somevalue;将在请求完成之前运行很长时间。另外,该代码会向服务器发送垃圾邮件请求;也许有比while循环更好的方法来实现它? -
@ChrisG 我正在抓取 facebook 帖子,当所有帖子都被抓取时,facebook 将 callDirection 设置为“下一个”。我需要检查 callDirection。当 callDirection 为“下一个”时,我将停止该过程。我有另一个想法去做。我正在努力。但是如果我可以通过while循环解决它,我会去的
-
这是一种没有 while 循环(也没有 await)jsfiddle.net/khrismuc/418atf9q 的方法
-
@ChrisG,如果您提供任何有用的代码 sn-p 或解决方案链接
标签: javascript node.js async-await