Sequelize JS / Bluebird:从asynchronous并行数据库调用开始
我有个问题。
我想开始2分贝的电话,然后继续承诺链。
我做的一个相当怪异的做法是像这样开始承诺:
db.Model.find().then(function() { return [ firstcall, secondcall ] }).spread(function(resultFromFirstCall, resultFromSecondCall) { //do something once both calls completed });
用空数据库调用启动promise链可以吗? 或者,还有更好的方法。
我知道我可以引入asynchronous库,但是我认为这是一个更清洁的方法,如果没有性能影响,使空的db.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 });
- 为什么这个蓝鸟PG代码挂起?
- 包含在可返回的生成器中的nodejs child_process.spawnSync或child_process.spawn返回输出
- 与Bluebird手动promisifying pg.connect
- function类似Promise.some /任何未知数量的承诺
- testing使用SinonJs和Mocha来限制包含Promise Code Block的Route Handler
- 从asynchronous获取蓝鸟承诺等待function
- ES7asynchronous/等待概念问题
- 函数适用于Promises
- Express.js – foreach数据数组并将其存储在数据库中