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
請在你的標題中描述你的實際問題。就目前而言,你的標題將適用於這裏發佈的一半問題。 –