Handle RequireJs errors

by NesterOne

HTML

<script src="http://requirejs.org/docs/release/2.1.14/comments/require.js"></script>

JavaScript

var req = requirejs.config({
    paths: {
        "foo": "http://localhost:8000/foo"
    }
});

req(["foo"], function (foo) {

    if (!foo) {
        console.log('No any FOO');
    }else {
        console.log(foo);
    }

}, function (err) {

    var failedId = err.requireModules && err.requireModules[0];
    if (failedId === 'foo'){
        console.log('Can\'t load  \''+failedId+'\' module');
        requirejs.undef(failedId);
        //Set the path to FOO with dummy module
        var prop = { paths : {} };
        prop.paths[failedId] = "http://localhost:8000/null"
        requirejs.config(prop);
        requirejs([failedId], function(){
            console.log('Loaded dummy for \'' +failedId +'\'');
        });
    }else {
        throw err;
    }

});