大约需要异步
About requirejs asynchronous
本文关键字:异步 更新时间:2023-09-26
我有两个js文件:
//loading.js
define(function () {
function Loading(config) {
}
Loading.prototype.show = function () {
};
Loading.prototype.hide = function () {
};
return function (config) {
return new Loading(config);
};
});
//util.js
define(function () {
var util = {};
util.loading = function (config) {
var result = null;
//I want this code synchronous
require(["loading"],function (Loading) {
result = Loading(config);
});
//there will be result null because of asynchronous
return result;
};
return util;
});
目前,我是这样解决这个问题的:
define(["loading"],function (Loading) {
var util = {};
util.loading = function (config) {
return Loading(config);
};
return util;
});
但是我不喜欢这样。
我想知道是否需要同步加载js文件。
如果没有,有办法解决这个问题吗?
我觉得这个问题需要.js同步,感觉答案并不能解决我的问题
第二个代码段的替代方法是:
define(function (require) {
var Loading = require("loading");
var util = {};
util.loading = function (config) {
return Loading(config);
};
return util;
});
但请注意,这仍然是异步加载名为"loading"的模块,即使它看起来是同步的。
问题是浏览器中的RequireJS总是异步加载模块。即使看起来是同步的,也是如此。RequireJS旨在加载符合异步模块定义(AMD)规范的模块,这是加载模块的固有异步方法。如果你想要看起来同步并且实际上同步的东西,你应该切换到同步工作的模块规范。
相关文章:
- esri javascript异步打印
- JavaScript异步问题
- $translateProvider.useStaticFilesLoader的Angular Translate异步定
- 异步facebook功能
- 异步并行错误
- 在Redux中,我应该在哪里编写复杂的异步流
- 角度异步http自动完成
- 如何从SeleniumWebdriver获取异步Javascript响应
- 如何使用异步调用更改工厂的变量
- 在等待异步任务时永久循环
- 如何在异步函数中使用javascript对象
- 调用后不异步Ajax忽略函数
- learnyounode#9杂耍异步
- 异步获取数据使用JavaScript同步获取数据
- Meteor:异步回调问题
- 如何以异步方式打印q中的项目
- javascript函数中的异步与同步.(Node.js)
- Fresh Spark Install+Homestead上的Vue异步堆栈跟踪错误
- Meteor:异步函数回调异常:onAfterAction
- 函数式javascript读取、异步、写入结果