【发布时间】:2017-11-17 08:12:07
【问题描述】:
我有一个这样的 nodejs Mongodb 代码。我试图推入一个全局数组并返回我所有的结果,但该数组只包含一个值。知道为什么吗?
var s = [];
var p = function(){
return new Promise(function(resolve, reject) {
MongoClient.connect(url, function (err, db) {
db.listCollections().forEach(function(collname) {
db.collection(collname.name).find().sort( { duration_in_seconds: 1 }).limit(1).toArray(
function(err, docs) {
assert.equal(null, err);
s.push(docs);
resolve();
});
});
});
});
}
p().then(function() {
console.log(s);
});
【问题讨论】:
-
你不能像这样引用承诺范围之外的变量。而是在“内部”使用它。 Read the duplicate and understand it.
-
你能解释一下吗?我是新的承诺@NeilLunn
-
@NeilLunn 这里的问题不是承诺,而是
forEach循环
标签: javascript arrays node.js promise