我有一個這樣的模塊。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(那)'看看它是否被設置? –