J'essaie actuellement d'utiliser async/wait pour une fonction qui nécessite que la boucle soit synchrone.
Voici la fonction:
async channelList(resolve, reject) {
let query = ['channellist'].join(' ');
this.query.exec(query)
.then(response => {
let channelsRaw = response[0].split('|');
let channels = [];
channelsRaw.forEach(data => {
let dataParsed = ResponseParser.parseLine(data);
let method = new ChannelInfoMethod(this.query);
let channel = await method.run(dataParsed.cid);
channels.Push(channel);
});
resolve(channels);
})
.catch(error => reject(error));
}
Lorsque j'essaye de l'exécuter, j'obtiens cette erreur:
let channel = await method.run(dataParsed.cid);
^^^^^^
SyntaxError: Unexpected identifier
Quelle pourrait en être la cause?
Merci!
Votre async
est défini sur channelList
et non sur la fonction flèche où se trouve await
. Déplacez async
vers cette fonction de flèche:
channelsRaw.forEach(async (data) => {
let dataParsed = ResponseParser.parseLine(data);
let method = new ChannelInfoMethod(this.query);
let channel = await method.run(dataParsed.cid);
channels.Push(channel);
});
De plus, puisque vous utilisez de toute façon async, vous pouvez simplement asynchroniser toute la chaîne de promesses que vous avez là-bas.