范围访问 - Javascript

时间:2015-12-04 14:42:08

标签: javascript scope

我遇到了javascript范围的问题。

public ActionResult Schedule(String number)
{
    return View(number);
}

我尝试了不同的方法(使用 var ,没有,使用 this ),但没有一种方法。 那么我该如何正确地获取在readFile函数中修改的tmpTab的内容呢?

3 个答案:

答案 0 :(得分:2)

return tmpTab;
console.log(tmpTab); 

从函数返回后无法调用代码。扭转陈述

答案 1 :(得分:2)

尝试readFileSync,它是同步的。否则最后一个控制台中的tmpTab将是[]。

如果您使用readFile,则内容仅在回调中可用。 readFileSync会“感觉”变慢,但内容在整个块中同步可用。

var tmpTab = fs.readFileSync(filename, 'utf8')
console.log(tmpTab);

修改: 当然,就像前面的答案正确包含一样,在return语句之后发生的任何语句都不会执行,所以这是你应该做的另一个更改。交换这两个语句就行了。

答案 2 :(得分:1)

返回语句后的代码将无法运行。 (一些现代浏览器会在控制台中向您发出警告。)将它放在返回之前:

console.log(tmpTab); 
return tmpTab;