我正在使用具有不帶回調方法的node.js模塊。取而代之的是,當該方法完成時會觸發事件。我想解決一個承諾,使用該事件作爲回調確保我的方法已成功完成。等待事件以解決承諾
array.lenght在承諾可以是X.所以,我需要'聽'X次事件,以確保所有方法已成功完成< - 這不是問題,我只是告訴你,我知道這可能發生
事件:
tf2.on('craftingComplete', function(recipe, itemsGained){
if(recipe == -1){
console.log('CRAFT FAILED')
}
else{
countOfCraft++;
console.log('Craft completed! Got a new Item #'+itemsGained);
}
})
承諾:
const craftWepsByClass = function(array, heroClass){
return new Promise(function (resolve, reject){
if(array.length < 2){
console.log('Done crafting weps of '+heroClass);
return resolve();
}
else{
for (var i = 0; i < array.length; i+=2) {
tf2.craft([array[i].id, array[i+1].id]); // <--- this is the module method witouth callback
}
return resolve(); // <---- I want resolve this, when all tf2.craft() has been completed. I need 'hear' event many times as array.length
}
})
}
'tf2.craft()'是否返回'Promise'?請注意,一個'Promise'只能解決或拒絕一次。 – guest271314
@ guest271314不要。 tf2.craft()不返回任何內容; –
'有一個沒有回調的方法.''很好''是一個回調.. :) – Keith