如何解决nodejs中多个promise或者嵌套的问题?

如果nodejs中连续查两次数据库,如果要求先查每1个,再查第2个,最后根据两次查询的结果做一些操作,怎么用promise实现呢?可以做到没有任何的二重嵌套吗?比如:

query({id:12}).then(function(data){    console.log(data);
    query({id:13}).then(function(data2){
        doXXX();
    });
});

以上代码结果还是出现了嵌套。

如果这样写:

query({id:12}).then(function(data){
    console.log(data);
    
}).then(function(){
    query({id:13}).then(function(data2){
        doXXX();
    });
}).then(function(data){
    doXXXX();
});

由于第2个then有异步,还是不行的,会跑到第3个then里面去。

谢谢解答,下面代码是可以的:

var query=test.query('core_user',{userName:'lqq'});
    var array=new Array();
    query.then(function (data) {
        console.log(data);        array.push(data[0]);
    }).then(function () {        return test.query('core_user',{userName:'test3'});
    }).then(function (data) {
        console.log(data);        array.push(data[0]);
        console.log(array);
        res.send(array);
    });


jeck猫
浏览 1091回答 1
1回答

叮当猫咪

query({id:12}).then(function(data){    console.log(data);    return query({id:13}) }).then(function(data){     doXXXX(); });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript