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(); });
댓글 없음:
댓글 쓰기