nidejs中的while循环中如何等待函数完全执行
我想在函数完全执行后再进行迭代。但是,循环会在函数完全执行之前进行迭代。我用过async / await。但没有运气。
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);
}
}
回答如下:使用仅在执行完成后返回的回调函数
function getdata(a,b, callback)
{
var somevalue = '';
request(req,function(){
//somecode
//assign value to 'somevalue'
callback(someValue);
});
}
var value = '';
function abc()
{
getdata(a,b , function(data) {
value = data:
if (value != 'x)
abc();
});
}
abc();