我試圖設置一個全局變量的函數,以便在範圍內的所有函數中使用它。函數被調用了一個又一個使用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
如何在這種情況下,我得到的財產?謝謝。
你的result.docs裏面有東西嗎? – sheplu
聽起來像你在第一個函數中獲得的'docs'是'null'。否則,你會收到一個錯誤,說你試圖讀取'undefined'屬性。 –
奇怪的事情 - 主要功能實際上是它的工作,但隨着錯誤而下降。重新啓動服務器後,我得到我所需要的。 – ASem