為承諾寫循環(huán)的正確方法。如何正確構(gòu)造循環(huán)以確保以下內(nèi)容承諾電話和鎖鏈logger.log(RES)在迭代過程中同步運(yùn)行?(藍(lán)鳥)db.getUser(email).then(function(res) { logger.log(res); }); // this is a promise我嘗試了以下方法http:/blog.victorQun.com/javascript-諾言-時(shí)間-循環(huán) )var Promise = require('bluebird');var promiseWhile = function(condition, action) {
var resolver = Promise.defer();
var loop = function() {
if (!condition()) return resolver.resolve();
return Promise.cast(action())
.then(loop)
.catch(resolver.reject);
};
process.nextTick(loop);
return resolver.promise;});var count = 0;promiseWhile(function() {
return count < 10;}, function() {
return new Promise(function(resolve, reject) {
db.getUser(email)
.then(function(res) {
logger.log(res);
count++;
resolve();
});
}); }).then(function() {
console.log('all done');});雖然它看起來很管用,但我不認(rèn)為它能保證呼叫的順序logger.log(RES);有什么建議嗎?
為承諾寫循環(huán)的正確方法。
揚(yáng)帆大魚
2019-07-13 09:21:18