1

似乎延迟对于保持代码内联非常有用,是否有任何主要使用它们的 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){

})

或者一些看起来很冗长但允许您传递未使用的引用的东西。

它还有什么其他好处。

4

1 回答 1

0

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

例子:

// 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:', $);
});

它带来的一个好处是,您可以将 Promise 传递给应用程序中的其他函数。

JSFiddle上的工作示例

于 2013-05-20T21:45:21.207 回答