将一些文档从CouchDB放入数组(Node.JS)
我尝试获取3个ID为1100 1000的文档。但是node.js是异步的,结果中的arrayobjects为空。如何将文档放入数组将一些文档从CouchDB放入数组(Node.JS),node.js,couchdb,Node.js,Couchdb,我尝试获取3个ID为1100 1000的文档。但是node.js是异步的,结果中的arrayobjects为空。如何将文档放入数组 var objects = {}; var objectsID = [1, 100, 1000]; objectsID.forEach( function( elem ){ objectsDB.get( elem, function( err, object ){ objects[elem] = object; }) }); console.l
var objects = {};
var objectsID = [1, 100, 1000];
objectsID.forEach( function( elem ){
objectsDB.get( elem, function( err, object ){
objects[elem] = object;
})
});
console.log(objects);
log返回{}。因此这是一个典型的异步代码问题。您的代码可以这样重写:
var objects = {};
var objectsID = [1, 100, 1000];
var finalize = function( ) {
console.log(objects);
};
objectsID.forEach( function( elem ){
objectsDB.get( elem, function( err, object ){
objects[elem] = object;
// remove ID from the list of IDs
var idx = objectsID.indexOf(elem);
if (idx!=-1) {
objectsID.splice(idx, 1);
}
// check if it is time to finalize
if (!objectsID.length) {
finalize();
}
})
});
您可能还想看一看(特别是async.parallel)。感谢您使用nano,非常感谢:)您可能会在这个网站上找到一些不错的提示:。下面是您问题的答案,它应该可以解决您的问题。本网站将帮助您了解为什么它会这样做!