[컴][웹] RequireJS 의 requirejs callback 의 flow

RequireJS helloworld / requirejs 예제 / requirejs 사용법 / callback function flow / sequence



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();
});




References

  1. hello world » RequireJS - AMD의 이해와 개발
  2. RequireJS API
  3. jrburke/requirejs · GitHub

댓글 없음:

댓글 쓰기