我正在使用一个没有回调函数的node.js模块方法。相反,它会在该方法完成时触发一个事件。我想要将该事件作为回调来解决一个promise,以确保该方法已经成功完成。
承诺中的数组长度可能是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);
}
})
Promise:
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
}
})
}
on
就是一个回调函数.. :) - Keithfor
循环与craftingComplete
事件的分派有什么关联? - guest271314