javascript - 如何在node js中的while循环中等待函数完全执行

标签 javascript node.js 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();

关于javascript - 如何在node js中的while循环中等待函数完全执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58199112/

相关文章:

javascript - Node.js 中的异步操作是否仅在执行服务器应用程序时才需要?

c# - 异步和等待需要澄清

javascript - 富文本框库

javascript - 如何在 Express Route 中捕获不定数量的参数?

javascript - NodeJS使用await/async读取谷歌电子表格中的值

node.js - 创建 package.json 时的测试命令是什么?

javascript - 无法在Windows上为redis-64添加密码

javascript - Angular JS 隐藏/显示每个项目和所有项目

javascript - 想要在滚动 > 10 后平滑地显示导航栏

javascript - 多提交按钮多复选框无表单jquery ajax php提交