Sta*_*cks 6 javascript mongoose node.js promise bluebird
利用Bluebird来支持Mongoose,我有一个Promise.map(带有一系列if/else的函数用于循环遍历数组以查看是否存在引用doc,否则创建一个..
将findOneAsync的产品分配给变量,然后将'variable._id'分配给制作中的新doc(主要承诺),控制台日志 {"isFulfilled":false,"isRejected":false}
这是一个片段:
for (i=0; i<items.length; i++) {
var existingItem = Models.Items.findOneAsync({ item: items[i] });
console.log( "existingItem : ");
console.log( JSON.stringify(existingItem) );
console.log( "existingItem._id : " + existingItem._id );
Run Code Online (Sandbox Code Playgroud)
这是一个日志:
existingItem :
{"isFulfilled":false,"isRejected":false}
existingItem._id : undefined
Run Code Online (Sandbox Code Playgroud)
为什么existingItem变量可能等待Model.Item.findOneAsync ..?
你的问题不是很清楚,但我问你的问题是,为什么你在检索它之后就existingItem 不会等待.
你明白如何使用承诺吗?大多数情况下,您需要使用.then()或其他promise操作函数来获取其已解析的值:
var existingItem = Models.Items.findOneAsync({ item: items[i] });
existingItem.then(function (value) {
console.log( "existingItem : ");
console.log( JSON.stringify(existingItem) );
console.log( JSON.stringify(value); );
console.log( "existingItem._id : " + existingItem._id );
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8041 次 |
| 最近记录: |