bluebird中map的方法如何实现类似于for循环中的continue?
就是如图的问题用map的方法实现循环,如果要实现退出循环直接用return bluebird.reject()就好,但是想实现类似于continue的行为肿么办呢,看了蛮久 mongoose的api也没找到方法,求各位高手指点一下 - -
7 回复
@infinite-sky 看了下,bluebird有cancel,当然应该也能自己用外部flag标记状态在下一个then中侵入式的判断flag来实现取消。。。 自豪地采用 CNodeJS ionic
看这代码,意思是consdata无效的话,不执行吧?那直接 return 就行了吧。
if (!consdata) return;
db.findOne({account: consdata})
.then()
....
var Promise = require('bluebird');
var array = [1, 2, 3];
Promise.map(array, function(n) {
if (n == 2) return;
return new Promise(function(resolve, reject) {
process.nextTick(function() {
resolve(n * 2);
});
}).then(function(result) {
console.log(result);
});
});
output:
2
6
是不是要这种效果,类似于 for 中的 continue
至于说到 break , 那只有抛出异常,或者 return Promise.reject() 才是 break 的效果。不知我理解可否正确?