有没有使用延迟的javascript AMD框架?

时间:2013-05-20 20:57:14

标签: javascript amd deferred

看起来deferreds对于保持代码内联非常有用,是否有任何amd框架主要使用它们? 例如:

require(['a','b','c'], function(a,b,c){

});

可以

var dfda = requiredfd('a');
var dfdb = requiredfd('b');
var dfdc = requiredfd('c');
whenall(dfda,dfdb,dfdc,function(a,b,c){

})

或某些 - 这似乎是罗嗦但允许您传递未使用的引用。

它还有什么其他好处。

1 个答案:

答案 0 :(得分:0)

我不熟悉使用promises的AMD框架。 但是,您可以编写自己的requiredfd - 函数来获得所需的行为。

示例:

// Use RequireJS and jQuery.Deferred.
var requiredfd = function(dependencies) {
    var dfd = $.Deferred();
    require(dependencies, function() {
        dfd.resolveWith(null, arguments);
    });

    return dfd.promise();
};

var promise = requiredfd(['underscore', 'jQuery']);
promise.done(function(_, $) {
    console.log('requiredfd');
    console.log('underscore:', _);
    console.log('jQuery:', $);
});

它带来的一个好处是,您可以将承诺传递给应用程序中的其他功能。

JSFiddle

上的工作示例