gpt4 book ai didi

javascript - 关于requirejs异步

转载 作者:行者123 更新时间:2023-12-03 05:45:18 26 4
gpt4 key购买 nike

我有两个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;
});

但我不喜欢这样。
我想知道requirejs是否支持同步加载js文件
如果没有,有办法解决这个问题吗?
我似乎有这个问题require.js synchronous ,感觉这个答案不能解决我的问题。

最佳答案

第二个代码片段的替代方案是:

define(function (require) {
var Loading = require("loading");
var util = {};
util.loading = function (config) {
return Loading(config);
};
return util;
});

但请注意,这仍然会异步加载名为“loading”的模块,即使它看起来是同步的。

问题是浏览器中的 RequireJS 总是异步加载模块。即使它看起来是同步的,情况也是如此。 RequireJS 旨在加载符合异步模块定义 (AMD) 规范的模块,这是一种本质上异步的加载模块方法。如果您想要看起来同步并且是同步的东西,您应该切换到同步工作的模块规范。

关于javascript - 关于requirejs异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40354272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com