虽然我返回了Promise,但属性在void类型上不存在

fil*_*rak 2 javascript typescript angular

我有一个功能可以在前端获取机器人的清单

  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);
      });

    });
  }
Run Code Online (Sandbox Code Playgroud)

如您所见,它返回一个Promise。

当我尝试调用它时

getBotInventory() {
    this.userService.getBotInventory().then(botInv..)
  }
Run Code Online (Sandbox Code Playgroud)

我越来越

错误TS2339:类型'void'上不存在属性'then'。

显然,它返回一个Promise。谁能指出问题出在哪里?

小智 5

对您来说可能很明显,但对我而言却不是。

查看清除回调的函数。

getBotInventory() {
  this.socket.emit('get bot inv');
  this.socket.on('bot inv', (botInventory) => {...});
}
Run Code Online (Sandbox Code Playgroud)

我在那里看不到任何退货声明!