Búsqueda de sitios web

javascript - La propiedad then no existe en el tipo void, aunque estoy devolviendo una Promesa


Tengo una función que obtiene el inventario de un bot en el 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);
      });

    });
  }

Como puedes ver, devuelve una promesa.

Cuando intento llamarlo

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

Estoy recibiendo

error TS2339: La propiedad 'then' no existe en el tipo 'void'.

Obviamente devuelve un Promise. ¿Puede alguien señalar dónde está el problema?

Respuesta #1

Puede ser obvio para ti, pero no lo es para mí.

Mira tu función, limpiada de callbacks.

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

¡No veo ninguna declaración de retorno allí!

Artículos relacionados