RequireJS:在回调中定义
RequireJS: defining in callback
在我的模块中,我想推迟"定义"调用,但是一旦加载文件,RequireJS就会运行回调,而不是在"定义"时...例如:
答.js:
require(['b'], function(b){
console.log(b);
});
b.js:
define({'foo':'bar'});
这按预期写入对象 {foo:bar} 工作。但是,如果我将"定义"移至延迟函数:
b.js:
setTimeout(function(){
define({'foo':'bar'});
}, 1000);
然后控制台.log(b) 写入"null"。
怎么了?
我认为任何延迟或延迟都应该发生在定义函数内部,或者您可以使用这样的回调模式:
//a.js
require(['b'], function(b){
b.getData(
function(data) {
console.log(data);
}
);
});
//b.js
define(function(){
this.getData = function(callback) {
setTimeout(function(_callback){
return function() {
_callback({'foo':'bar'});
}
}(callback), 1000);
}
return this;
});
使用此模式,您可以在 a.js 中设置回调函数来处理来自 b.js 的延迟应答。
希望这对你有帮助。
相关文章:
- 要求多页&多应用程序未执行定义回调
- 为从AJAX调用中utlizes DATA参数的函数定义回调
- 如何向jquery插件添加自定义回调
- 如何在javascript中对用户函数进行自定义回调
- 为什么在定义回调/侦听器函数(异步消息传递,port.on)后没有立即设置全局变量
- 自定义回调护照
- 在 JavaScript 中为所有事件类型定义回调函数
- 为什么使用 api 调用在函数内定义回调函数会引发“未捕获的引用错误”
- 如何在异步库的“Each”函数中定义回调
- 当无法定义回调时使用angularjs JSONP
- .animate()的jQuery自定义回调
- Javascript自定义回调函数不工作
- require.js-未定义的模块作为参数传递以定义回调
- 找不到Angular.js Angular拖放自定义回调函数
- 在带有已定义回调函数的JSONP中使用$.when
- 为节点函数定义自定义回调
- jQuery插件的自定义回调函数
- 在Meteor中运行的回调中未定义回调参数
- 给一个提供的NodeJS回调我自己的自定义回调
- Javascript添加带有自定义回调的事件侦听器