Mongoose find().exec() 承诺问题

Gab*_*iel 3 javascript mongoose mongodb es6-promise

有人可以向我解释为什么下面的代码返回audiences而不是返回一个空数组吗?

return Audience.find()
  .exec((err, audiences) => {
    if (err) return errorHandler.handle('audienceService', err);

    return Promise.resolve([]);
  });
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 7

您正在从exec callback返回。要使用来自 的承诺exec,请then在其上使用,如下所示。也没有理由Promise.resolve

return Audience.find()
  .exec()
  .then(audiences => [])
  .catch(err => errorHandler.handle('audienceService', err));
Run Code Online (Sandbox Code Playgroud)

  • 这个答案没有解决问题 (2认同)