我有一个这样的模块。NodeJS需要范围变量
somemodule.js
module.exports = {
val: null,
get: function() {
finddata('/', function(resp) {
this.val = resp
}
}
}
,被称为像这样:
var x = require('somemodule');
x.get();
x.get();
一号get调用后,该x.val没有被设置。试过这个以及哪个不起作用:
module.exports = {
val: null,
get: function() {
var that = this;
finddata('/', function(resp) {
that.val = resp
}
}
}
如何设置x.val?
finddata是异步吗?你确定它的回调被称为? –
它是异步的,它被称为 –
第一个片段不会按预期工作,因为回调中的this关键字意味着函数本身,而不是您想要导出的整个对象。我没有看到第二种方法有什么问题,所以你如何检查'x.val'是否被设置?你可以做'console.log(那)'看看它是否被设置? –