Node/Javascript - 多个回调和 for 循环中的变量访问

Node/Javascript - variable access within multiple callbacks and for loop

我有一个回调函数,其中包含一个包含另一个回调的 for 循环。

我正在努力理解变量范围。我需要在整个嵌套结构中访问 out 变量:

var out = {"foo":123};

persistence.getAllApiKeys(function(err, allKeys){

  for (var prop in allKeys) {

    out = {"baz":456};

      persistence.getApiKeyValue("test", function(err2, value) {

        out = {"success":true}; // <--does not update

      });
  }

    console.log(out);
})

输出:

{ baz: 456 }

如何访问最终回调中的 out 变量?即将其设置为 "success":true?

经典异步。 console.loggetApiKeyValue 的回调之前执行。把console放到callback里面,你就知道哪里不对了。