【发布时间】:2018-10-13 13:20:08
【问题描述】:
谁能解释一下为什么下面的代码返回audiences而不是返回一个空数组?
return Audience.find()
.exec((err, audiences) => {
if (err) return errorHandler.handle('audienceService', err);
return Promise.resolve([]);
});
【问题讨论】:
-
我可以解释你只是做
return Audience().find()。您正在将“回调”混入您期望返回Promise的内容中。 mongoose 方法已经返回了 Promise。 -
@NeilLunn:That dupetarget 似乎有点牵强,有什么更直接适用于使用
exec的回调方面而不是承诺方面的东西吗? -
@T.J.Crowder 剪贴板中的链接错误。本来是规范的,并且还在寻找关于猫鼬
exec()的冗长回复,这应该可以消除额外的混乱。链接已更改。 -
@NeilLunn: :-) 我不会说the async one 是一个欺骗目标。在我看来,The other 的答案充其量只是切线地解决了这个问题。
标签: javascript mongodb mongoose es6-promise