Promise.prototype.finally

finally() 方法返回一个 Promise。在 promise 结束时,无论结果是 fulfilled 或者是 rejected,都会执行指定的回调函数。这为在 Promise 是否成功完成后都需要执行的代码提供了一种方式。

promise
.then(result => {···})
.catch(error => {···})
.finally(() => {···});

比如,服务器使用 Promise 处理请求,然后使用 finally 方法关掉服务器。

server
  .listen(port)
  .then(function () {
    // ...
  })
  .finally(server.stop)

还有前端 loading 的场景控制。

let isLoading = true

fetch(myRequest)
  .then(function (response) {
    var contentType = response.headers.get('content-type')
    if (contentType && contentType.includes('application/json')) {
      return response.json()
    }
    throw new TypeError("Oops, we haven't got JSON!")
  })
  .then(function (json) {
    /* process your JSON further */
  })
  .catch(function (error) {
    console.log(error)
  })
  .finally(function () {
    isLoading = false
  })
Copyright © 零度实验室 2020 all right reserved,powered by Gitbook修订时间: 2021-07-02 10:46:52

results matching ""

    No results matching ""