我正在尝试使用RequireJS加载浏览器模块,但遇到了一个有趣的问题。
我有 3 个名为 的模块a
,b
并且c
有这些简单的源代码:
一个.js
define(['./b', './c'], function(c, b) {
console.log('A IS LOADED!');
return 'A';
});
b.js
define(function() {
console.log('B IS LOADED!');
return 'B';
});
c.js
define(function() {
console.log('C IS LOADED!');
return 'C';
});
当我自己加载模块a
时,一切正常,以下代码运行并返回“A”:
require(['./a'], function(a) {
console.log(a); // 'A'
});
但是,如果我需要两个不同的模块,其中一个已经加载:
require(['./a', './c'], function(a, c) {
console.log(a, c);
});
RequireJS 会报错:
C IS LOADED!
B IS LOADED!
require.js load timeout for modules: ./c
当它显然已经加载时。
有没有人遇到过这个问题?我该如何解决?