Читая документацию requireJs,
для исправления циклических зависимостей предлагается использовать exports
для создания пустого объекта для модуля, который сразу же доступен для ссылки другими модулями.
Я пробую этот код, но, похоже, он не работает. Что не так?
P.S.:
прочитайте комментарии, чтобы увидеть вывод,
особенно модуль B внутри вызова setTimeout.
// A module
define([
'b'
], function (b) {
console.log('B:', b); // B, Object
var A = {
boo: 1
};
return A;
});
// B module
define([
'a',
'exports'
], function (a, exports) {
console.log('A:', a); // A, undefined (as I was expecting)
exports.A = function () {
return a;
}
var B = {
bar: 1
};
setTimeout(function () {
console.log('exports.A', exports.A()); // exports.A undefined
// I would like to access the A object
// which is defined in A module
}, 500);
return B;
});
// main.js
(function () {
define([
'a'
], function () {
});
}());