我想要外面的变量fileContent,但说未定义

时间:2019-06-08 14:07:20

标签: node.js this shadowing

我正在从诺言中获取数据,当它解决后,但是我找不到找到如何使用此数据的方法,代码将清除更多内容。 此外,我不清楚代码中的“ this”是否指向哪个对象。据我说,它是指全局对象。

p.then(function(data){this.fileContent = data});
 return res.render('experiments',{pageTitle:'Experiments',user:req.session.email,data:this.fileContent}); 

数据将分配给this.fileContent,但是当我使用this.fileContent时,在res.render函数中却说未定义原因

1 个答案:

答案 0 :(得分:0)

在您的示例中使用箭头功能进行调试,然后在示例中看到该功能将其自身绑定到此,而箭头功能实际上并不将其自身绑定到此。箭头函数按词法绑定它们的上下文,因此实际上是指原始上下文。

p.then((data)=>{this.fileContent = data});

或者简单地说,您可以在此范围之外使用变量并为其分配数据,就像在代码中一样

let resp ;
p.then(function (data){resp = data}); // do not use this
// process resp here