【发布时间】:2014-12-24 23:35:58
【问题描述】:
有没有办法对 Promise 对象的两个结果执行回调?
例如,我想在执行 xhr 请求后进行一些清理逻辑。所以我需要做这样的事情:
var cleanUp = function() { something.here(); }
myLib.makeXhr().then(cleanUp,cleanUp);
以 jquery Defered 为例,我可以使用方法 always():
myLib.makeXhr().always(function() { something.here(); });
Promise 支持这样的东西吗?
【问题讨论】:
-
我看到现在只有 then 和 catch 方法developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 所以可能没办法(或扩展原型来实现)
-
jQuery.Deferred().then,如何用多个参数解析stackoverflow.com/questions/24703887/…
-
本杰明回答 - 不。这就是为什么我通常在浏览器中使用 github.com/petkaantonov/bluebird 并且它是 join、all 和所有其他方法。当然它不是原生的,但它可以解决许多承诺问题和承诺。
-
@Jarema plus,除了更丰富的 API 和更好的堆栈跟踪之外,它实际上比目前的原生 Promise 快得多。
标签: javascript promise