然后属性类型void上不存在属性,尽管我返回了一个Promise

时间:2018-03-13 12:38:38

标签: javascript angular typescript

我有一个功能,可以在前端获取机器人的库存

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

    });
  }

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

当我试着打电话时

getBotInventory() {
    this.userService.getBotInventory().then(botInv..)
  }

我正在

  

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

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

1 个答案:

答案 0 :(得分:5)

对你来说可能很明显,但对我来说并非如此。

查看你的功能,清除回调。

getBotInventory() {
  this.socket.emit('get bot inv');
  this.socket.on('bot inv', (botInventory) => {...});
}

我在那里看不到任何回复声明!