javascript - Egenskapen then finns inte på typen void, även om jag returnerar ett Promise
Jag har en funktion som hämtar en bots inventering på frontend
getBotInventory() {
this.socket.emit('get bot inv');
this.socket.on('bot inv', (botInventory) => {
return new Promise((resolve, reject) => {
if (botInventory.error) {
return reject(botInventory.error);
}
this.botInventory = botInventory;
resolve(botInventory);
});
});
}
Som du kan se, returnerar det ett Promise.
När jag försöker ringa det
getBotInventory() {
this.userService.getBotInventory().then(botInv..)
}
Jag får
fel TS2339: Egenskapen 'then' finns inte på typen 'void'.
Självklart returnerar det ett Promise. Kan någon påpeka var problemet ligger?
Svar #1
Det kan vara uppenbart för dig, men det är det inte för mig.
Titta på din funktion, rensad från callbacks.
getBotInventory() {
this.socket.emit('get bot inv');
this.socket.on('bot inv', (botInventory) => {...});
}
Jag ser inget return-uttryck där!
