RequireJS version : 2.1.14
callback flow
아래처럼 callback 을 정의해 놓으면, require.js 에 의해 호출이 되는데, 이녀석은 asynchronous 하게 call 된다고 한다.// Start the main app logic.
requirejs(['jquery'],
function ($) {
//jQuery, canvas and the app/sub module are all
//loaded and can be used here now.
console.log('test: requirejs main');
});
위의 callback 의 호출은 Module.init 에 의해 이뤄진다. 자세한 사항은 debugger를 사용해서 확인하고, 아래는 개략적인 code 이다.
// Main entry point
req = requirejs = function (deps, callback, errback, optional) {
return context.require(deps, callback, errback);
makeRequire: function (relMap, options) {
localRequire
context.nextTick(function () {...}); // setTimeout
req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) {
setTimeout(fn, 4);
} : function (fn) { fn(); };
// Anonymous function in context.nextTick
context.nextTick(function () {
//Some defines could have been added since the
//require call, collect them.
intakeDefines();
requireMod = getModule(makeModuleMap(null, relMap));
//Store if map config should be applied to this require
//call for dependencies.
requireMod.skipMap = options.skipMap;
// Module.init() is called
requireMod.init(deps, callback, errback, {
enabled: true
});
checkLoaded();
});
댓글 없음:
댓글 쓰기