之前从未使用defer
,但我的代理人要求我使用defer
承诺。
在mozilla defer页面中,它表示defer
已过时,不应再使用了。但在同一页面上有例子。
我的问题是,为什么要将defer
与承诺一起使用?它对以下代码有什么好处,只写少量代码?我应该定义一个新的承诺而不是那个?
export function defer () {
const deferred = {}
deferred.promise = new Promise((resolve, reject) => {
deferred.resolve = resolve
deferred.reject = reject
})
return deferred
}
正在使用它的代码:
export async function waitForPredicate (peer, path, predicate, cancelToken) {
const deferredFetcher = defer()
...
let result = predicate(data)
if (result) {
deferredFetcher.resolve(result)
}
})
答案 0 :(得分:-1)
在ES6 Promise模式标准化之前,延迟是Promise
的模式/视图,可以修改状态。