我正在编写代码,执行以下操作:
function getStuffDone(param) { | function getStuffDone(param) {
var d = Q.defer(); /* or $q.defer */ | return new Promise(function(resolve, reject) {
// or = new $.Deferred() etc. | // using a promise constructor
myPromiseFn(param+1) | myPromiseFn(param+1)
.then(function(val) { /* or .done */ | .then(function(val) {
d.resolve(val); | resolve(val);
}).catch(function(err) { /* .fail */ | }).catch(function(err) {
d.reject(err); | reject(err);
}); | });
return d.promise; /* or promise() */ | });
} | }
有人告诉我这分别称为“ 延迟反模式 ”或“ Promise
构造函数反模式 ”,这段代码有什么不好之处,为什么又将其称为反模式?
catch
块getStuffDone
是反模式?
Promise
示例,对于.then
和.catch
处理程序,您还具有不必要的函数包装器(即,可能只是.then(resolve).catch(reject)
。)完美的反模式风暴。
getStuffDone
函数包装并仅使用Promise文字?