Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Mongoose.create+;将猫鼬承诺转换为Q承诺_Node.js_Mongoose_Promise_Q - Fatal编程技术网

Node.js Mongoose.create+;将猫鼬承诺转换为Q承诺

Node.js Mongoose.create+;将猫鼬承诺转换为Q承诺,node.js,mongoose,promise,q,Node.js,Mongoose,Promise,Q,我试着用猫鼬的承诺和Q 我想看到的是: var promise1 = Model.create({ field: 'value1' }); var promise2 = Model.create({ field: 'value2' }); Q.all([promise1, promise2], function(){ console.log("promises resolved"); }); ) 当然不行了。我错过了在Q promise对象中包装猫鼬承诺的东西。有什么

我试着用猫鼬的承诺和Q

我想看到的是:

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

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


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

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

当我尝试它时,效果很好:

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

Q会单独强制猫鼬的承诺吗?
promise1=Q(promise1)
promise2=Q(promise2)