为什么要使用新的承诺推迟

时间:2018-01-22 13:41:40

标签: javascript promise deferred

之前从未使用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)
  }
})

1 个答案:

答案 0 :(得分:-1)

在ES6 Promise模式标准化之前,延迟是Promise的模式/视图,可以修改状态。