如果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);
});
Promise.all