[英]Global variable inside function scope not working - async.series
我試圖為該函數設置一個全局變量,以便在范圍內的所有函數中使用它。 使用async.series
調用函數:
exports.update = function(req, res, next){
var result = {}; // setting global var for the scope
var function1 = function(callback) {
MyModel.findOne(conditions)
.lean()
.exec(function(err, docs) {
if (err) {
return callback(err, null);
}
result.docs = docs; // assigning function result to global var
return callback(null, 'done');
});
};
var function2 = function(callback) {
var fieldsToSet = {
// ...
somefield: result.docs.someproperty // error here result.docs = null
};
Mymodel.create(fieldsToSet, function(err, record) {
// ...
});
};
};
require('async').series([function1, function2]);
};
返回錯誤:
TypeError: Cannot read property 'someproperty' of null
在這種情況下,我如何獲得財產? 謝謝。
舊答案
在exports.update
之外聲明result
。 在這種情況下必須工作。
編輯:可能使result
等於函數內部的空對象,如果那是您想要的。
截至12月17日的新答案
@ASem:如果您仍然努力,可以定義result.docs = {};
result
正確嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.