【发布时间】:2016-12-26 01:29:56
【问题描述】:
我正在使用 Promises,并且更喜欢这样使用它:
function Deferred() {
this.resolve = null;
this.reject = null;
this.promise = new Promise(function(resolve, reject) {
this.resolve = resolve;
this.reject = reject;
}.bind(this));
Object.freeze(this);
}
function somethingAsync() {
var deferred = new Deferred();
// do stuff then deferred.resolve();
return deferred.promise;
}
我刚刚在 Firefox Promise.defer() 中遇到了同样的问题,这是标准吗?或者只是特定于 Firefox?我什至在 Firefox 的 Promise 文档中都找不到它 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
【问题讨论】:
-
你见过this吗?
-
谢谢@stevenelberger 是的,我看到了,但那是用户的 wiki 编辑。我不相信它,因为
Promise.defer在 Firefox 50 中仍然存在。 -
ecma-international.org/ecma-262/7.0 ->
ctrl+f“延迟” -
为什么
Deferred()构造函数中有前两行?似乎不需要它们。 -
不要使用它,改用promise构造函数:bluebirdjs.com/docs/api/deferred-migration.html
标签: javascript promise deferred