d3.text函数中的范围问题

时间:2014-05-18 20:12:35

标签: javascript asynchronous d3.js

我正在使用d3.text函数来读取.txt文件。我可以使用函数内部读取的值。但是,如果我将读取的值放在函数外部声明的变量中,则该函数在函数结束后立即变为未定义。

var fileString;
d3.text("articles/0.txt", function(error, text) {
    fileString = text;
    console.log(fileString); //Print the correct String
});
console.log(fileString); //Print undefined

如何在函数完成后保留变量的值?

1 个答案:

答案 0 :(得分:1)

由于变量是在外部范围内定义的,因此即使在执行函数之后,变量也会保留您在函数中分配的值。

您的示例打印 undefined ,因为当您打印变量的值时,该函数可能尚未执行(因为它是一个回调函数并且文本文件是异步加载的)。所以它打印 undefined