就是如图的问题用map的方法实现循环,如果要实现退出循环直接用return bluebird.reject()就好,但是想实现类似于continue的行为肿么办呢,看了蛮久 mongoose的api也没找到方法,求各位高手指点一下 - -
你是想取消某个promise? 自豪地采用 CNodeJS ionic
@reverland 是的呢,想在符合条件的时候退出,不传到下面一个then里面去了
@infinite-sky 看了下,bluebird有cancel,当然应该也能自己用外部flag标记状态在下一个then中侵入式的判断flag来实现取消。。。 自豪地采用 CNodeJS ionic
看这代码,意思是consdata无效的话,不执行吧?那直接 return 就行了吧。
if (!consdata) return; db.findOne({account: consdata}) .then() ....
@klesh 直接return相当于for循环的break;但是要实现类似于continue;的行为要用到cancel( ),但是不会用。。。api上貌似没有讲用法。。。
@infinite-sky 你一个promise又不会影响其它的,直接抛异常行么。。。⊙▽⊙ 自豪地采用 CNodeJS ionic
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 的效果。不知我理解可否正确?
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
你是想取消某个promise? 自豪地采用 CNodeJS ionic
@reverland 是的呢,想在符合条件的时候退出,不传到下面一个then里面去了
@infinite-sky 看了下,bluebird有cancel,当然应该也能自己用外部flag标记状态在下一个then中侵入式的判断flag来实现取消。。。 自豪地采用 CNodeJS ionic
看这代码,意思是consdata无效的话,不执行吧?那直接 return 就行了吧。
@klesh 直接return相当于for循环的break;但是要实现类似于continue;的行为要用到cancel( ),但是不会用。。。api上貌似没有讲用法。。。
@infinite-sky 你一个promise又不会影响其它的,直接抛异常行么。。。⊙▽⊙ 自豪地采用 CNodeJS ionic
output:
是不是要这种效果,类似于 for 中的 continue
至于说到 break , 那只有抛出异常,或者 return Promise.reject() 才是 break 的效果。不知我理解可否正确?