看起来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){
})
或某些 - 这似乎是罗嗦但允许您传递未使用的引用。
它还有什么其他好处。
答案 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:', $);
});
它带来的一个好处是,您可以将承诺传递给应用程序中的其他功能。
上的工作示例