J'utilise un module node.js qui a une méthode sans callbacks. Au lieu de cela, a un événement qui se déclenche lorsque cette méthode est terminée. Je veux résoudre une promesse, en utilisant cet événement comme rappel me sécurisant cette méthode a été achevée avec succès. Array.lenght sur promesse peut être X. Donc, j'ai besoin d'entendre x fois l'événement pour me garantir que toutes les méthodes ont terminé avec succès < - Ce n'est pas le problème, je vous dis juste que je savoir cela pourrait se produireAttendre un événement pour résoudre une promesse
événement:
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
}
})
}
Est-ce que 'tf2.craft()' retourne un 'Promise'? Notez qu'une «promesse» ne peut être résolue ou rejetée qu'une seule fois. – guest271314
@ guest271314 Ne pas. tf2.craft() ne retourne rien; –
'qui a une méthode sans callbacks.'bien' on' est un rappel .. :) – Keith