私はこのようなモジュールを持っています。NodeJSスコープ変数が必要です
somemodule.js
module.exports = {
val: null,
get: function() {
finddata('/', function(resp) {
this.val = resp
}
}
}
と、このように呼ばれている:第一get呼び出した後
var x = require('somemodule');
x.get();
x.get();
、このx.valが設定されていません。試してもうまくいきません:
module.exports = {
val: null,
get: function() {
var that = this;
finddata('/', function(resp) {
that.val = resp
}
}
}
x.valを設定するにはどうすればよいですか?
'finddata'は非同期ですか?そのコールバックが呼び出されたと確信していますか? –
これは非同期であり、呼び出されています –
コールバックの 'this'キーワードは、エクスポートするオブジェクト全体ではなく関数自体を意味するため、最初のスニペットは意図した通りに機能しません。私は第2のアプローチで何か間違っているとは思わないので、どうすれば 'x.val'が設定されているかどうかチェックしましたか? 'console.log(that)'を使って設定されているかどうか確認できますか? –