最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

nidejs中的while循环中如何等待函数完全执行

运维笔记admin8浏览0评论

nidejs中的while循环中如何等待函数完全执行

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();
发布评论

评论列表(0)

  1. 暂无评论