【问题标题】:How to create a fulfilled promise in mpromise如何在承诺中创造一个履行的承诺
【发布时间】:2016-06-05 20:28:00
【问题描述】:

我有一个 node@4.3.1 + mongo + mongoose@4.4.4 项目,我认为它为我提供了 mpromise 库(猫鼬文档暗示了这一点)

假设它是 mpromise,我对创建一个已经实现的 promise 的非常简单的工作感到困惑(所以我可以存根一个应该返回一个 promise 的函数)。

mpromise doc (see the "Chain" section) 说我可以这样做:

function makeMeAPromise(i) {
  var p = new Promise;
  p.fulfill(i);
  return p;
}

但这会失败,但出现“未定义的承诺解析器不是函数”异常。

我在使用承诺吗?医生在说谎吗?如何创建已解决的承诺?

编辑:这行得通

return new Promise(function(fulfill, reject) { fulfill("really?  this can't be the only way"); });

但这不可能是最简单的方法,对吧?

【问题讨论】:

  • 试试return p.resolve(i);。另外,如果你有var Promise = require('mpromise');,那么你正在使用mpromise,如果没有,那么你正在使用别的东西
  • 我希望我能... var p = new Promise; 导致异常。与new Promise() 相同
  • 试试return Promise.resolve(i)@user1272965
  • 谢谢。 @BenjaminGruenbaum 肯定会欣赏完整描述 mongo 承诺的文档。只用谷歌搜索了 10 分钟,我很惊讶我没有找到多少。
  • @BenjaminGruenbaum,很抱歉打扰......现在我想知道如何做 Promise.any(),但我不想发布一个糟糕的 SO 问题。你能告诉我我正在使用哪个承诺库,或者如何弄清楚,以及它的文档在哪里?

标签: javascript node.js mongodb mongoose promise


【解决方案1】:

据我所知,Mongo 不会覆盖 Node 中的默认 Promise 对象。所以默认方式应该可以正常工作:

const resolvedPromise1 = new Promise(f => f("Fullfilled!"));
const resolvedPromise2 = Promise.resolve("Fullfilled!");

【讨论】:

  • 非常感谢。你能指出一个关于这个的文档吗? docs.mongodb.org?
猜你喜欢
  • 2015-11-17
  • 2014-06-04
  • 2016-11-07
  • 2019-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-02-04
  • 1970-01-01
相关资源
最近更新 更多