node.js 有一个批量异步处理,在 bluebird settle 执行完还需要使用 id 咋办,请问如何获取?
var queries = array.map(function(id){
    return User.schema.find({user_id: id}).execAsync();
});
return Promise.settle(queries).then(function(results){
    results.forEach(function(result){
        if(result.isFulfilled()){
            //这里如何使用 map 遍历时的 id ?
            
        }else if(result.isRejected()){
            error(result.reason());
        }
    });
});
settle 是异步执行在外面定义一个变量临时存储 id 好像不行吧,如果是闭包倒是可以在每个异步执行完获取 id ,因为在同一个 function 作用域。
|  |      1zhuangzhuang1988      2016-04-05 11:15:43 +08:00  1 var queries = array.map(function(id){ return User.schema.find({user_id: id}).execAsync(); }); ==> var queries = array.map(function(id){ return User.schema.find({user_id: id}).execAsync().then(data => { return {id: id, data: data} }); }); 这样就好了... | 
|      2photon006 OP @zhuangzhuang1988 Got it , thanks 。 |