Sequelize JS/Bluebird:从异步并行DB调用开始



我有个问题。

我想启动2db调用,然后继续promise链。

我做的一个相当粗鲁的方式是开始这样的承诺:

db.Model.find().then(function() { 
    return [ 
        firstcall, 
        secondcall
    ]
}).spread(function(resultFromFirstCall, resultFromSecondCall) {
    //do something once both calls completed
});

用一个空的db调用启动promise链可以吗?或者有更好的方法吗。

我知道我可以引入异步库,但我认为这是一种更干净的方法,如果不影响空数据库的性能的话。Model.find()调用。

我不确定空的find调用在这里会做什么,因为我从未使用过SequelizeJS,但我很确定你要找的可能是Promise.join

Promise.join( firstCall, secondCall, function( firstResult, secondResult ) {
  // Whatever
});

过了一段时间,我找到了一种更好的方法。

Promise.resolve().then(function() {
    return [
        firstCall(),
        secondCall()
    ];
}).spread(function(resultFromFirst, resultFromSecond) {
    //do something with resultFromFirst and resultFromSecond
});

最新更新