簡體   English   中英

函數范圍內的全局變量不起作用-async.series

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM