javascript - 如何在妥协中创造一个兑现的 promise

标签 javascript node.js mongodb mongoose promise

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

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

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

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

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

我使用了 mpromise 吗?医生在撒谎吗?如何创建已解决的 promise ?

编辑:这有效

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

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

最佳答案

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

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

关于javascript - 如何在妥协中创造一个兑现的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35587073/

相关文章:

javascript - NestJS 从 ExceptionFilter 抛出

同一列的日期和字符串格式的 MongoDB 日期

mongodb - 使用 upsert 更新,但仅当 db 中文档的日期字段小于更新的文档时才更新

javascript - 窗口.打开 POST

javascript - CasperJS - 如何打开链接数组中的所有链接

javascript - Electron 需要重新加载页面才能显示内容

node.js - mongoose findOne 不是一个函数

javascript - Rails 中更改数据库值的按钮

javascript - 如何找到罕见的错误?

node.js - 如何将 mongo 的 .native 函数转化为 bluebird Promise?