1
我想了解Promise.all
的这种行为。javascript - 我做错了什么?
var checkIfModuleExists = promisify(
function (m, cb){
var doc = {
index: 'app1',
type: 'm1',
id: m.id,
body: { }
};
client.exists(doc ,
function (err, exists) {
cb(err, exists);
});
});
,然后我有一个promise.all
这样的:
var module = [{id: 'aa'}, {id: 'bb'}];
Promise.all(modules.map(function(module){
return checkIfModuleExists(module);
})).then(function(data){
console.log(data);
}).catch(function(err){
console.log(err);
});
当我运行这个“然后”秀[假的,真]:这似乎是正常的,但我不明白的是,如果我改变我的回调函数,像这样cb({exists: exists, m: m}, err);
,我只收到json,没有更多的数组。我想接收包含m的数组,如果模块存在与否(如下所示:[{m:true/false},{m:true/false}]))。你能解释这种行为,以及如何获得包含每个模块的数组的状态?谢谢
回调的签名是'(错误,successValue)',所以你应该叫'CB(ERR,{M:存在}' - 你有参数错误的方式围绕 – CodingIntrigue
每CodingIntrigue的评论,这似乎与'Promise.all()'完全没有任何关系,所以你的问题标题有点偏离标准。如果你调用了'checkIfModuleExists()。then()'all by本身。 – jfriend00
请在你的标题中描述你的实际问题。就目前而言,你的标题将适用于这里发布的一半问题。 –