为什么在进行 axios api 调用时使用承诺?

Why use a promise when making an axios api call?

我正在学习 vue.js 教程,看到一些让我感到困惑的东西,想知道是否有人可以向我解释一下,因为我从不使用 promise。下面的方法用于分配一个客户数组对象。为什么要使用 Promise?我认为当您将对象返回给服务消费者时应该使用 Promise 吗?为什么以及何时应该使用承诺?

loadCustomer() {
            new Promise((resolve, reject) => {
                axios.get(this.DetailsDataUrl)
                    .then(res => {
                        this.Customer = res.data
                        resolve()
                    })
                    .catch(err => {
                        console.log(err);
                        reject()
                    })
            });
        }

使用 promises 可以调用 asynchronous 函数。 例如在这里当你想使用 loadCustomer 你可以 await 直到这个函数解决或拒绝:

try {
  // resolve
  const response = await loadCustomer()
} catch(err) {
  // reject
  console.log(err)
}

axios 它自己 return 一个 promise: 所以你可以像这样重写你的函数:

loadCustoemr() {
  return axios.get(this.DetailsDataUrl)
}

并称它为:

loadCutomer()
  .then(res => this.Customer = res.data)
  .catch(err => console.log(err))

如上你也可以在这里使用async/await。 如需更多信息,您可以使用 this link