Mongoose.create + Q 将 mongoose 承诺转换为 Q 承诺

Posted

技术标签:

【中文标题】Mongoose.create + Q 将 mongoose 承诺转换为 Q 承诺【英文标题】:Mongoose.create + Q convert mongoose promises into Q promises 【发布时间】:2015-02-25 02:23:20 【问题描述】:

我正在尝试将猫鼬承诺与 Q 一起使用。

我想看到的是:

var promise1 = Model.create(
    field: 'value1'
);
var promise2 = Model.create(
    field: 'value2'
);

Q.all([promise1, promise2], function()
    console.log("promises resolved");
);

)

当然不行。我错过了在 Q 承诺对象中包装猫鼬承诺的东西。有什么优雅的方法吗?

【问题讨论】:

Q 是否会单独强制 mongoose 承诺 - promise1 = Q(promise1);promise2 = Q(promise2); 【参考方案1】:

您没有将“已解决”回调传递给对 all 的调用,而是在返回的 Promise 上调用 done 并将回调传递给它:

当我尝试时效果很好:

Q.all([promise1, promise2]).done(function(docs)
    console.log("promises resolved");
);

【讨论】:

以上是关于Mongoose.create + Q 将 mongoose 承诺转换为 Q 承诺的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose.create 创建文档但没有我的数据

浜轰汉缃戯紝寰崥锛孮Q绌洪棿,鏈嬪弸鍦堬紝甯哥敤API璋冪敤瀹炵幇鏂规硶

Hackerearth: Mathison and the Pokémon fights

如何将字符串 - 1year 6mon 转换为数字 1.5?

SQL:是不是可以将 dd-mon-yy 转换为一天中的某个时间?

Impala - 将 MON-YY 转换为 YYYYMM