JavaScript Promise如何處理錯(cuò)誤

小樊
81
2024-10-30 18:06:26

在JavaScript中,Promise是一種用于處理異步操作的對(duì)象。它有三種狀態(tài):pending(進(jìn)行中)、fulfilled(已成功)和rejected(已失?。.?dāng)Promise被拒絕(rejected)時(shí),你需要處理錯(cuò)誤。你可以使用.catch()方法或者.then()方法的第二個(gè)參數(shù)來(lái)處理錯(cuò)誤。

以下是使用.catch()方法處理錯(cuò)誤的示例:

const promise = new Promise((resolve, reject) => {
  // 異步操作
  setTimeout(() => {
    reject('出錯(cuò)了');
  }, 1000);
});

promise
  .then(result => {
    console.log(result);
  })
  .catch(error => {
    console.error('捕獲到錯(cuò)誤:', error);
  });

在這個(gè)例子中,我們創(chuàng)建了一個(gè)新的Promise,它在1秒后將自身設(shè)置為拒絕狀態(tài)。然后我們使用.then()方法處理成功的結(jié)果,使用.catch()方法處理錯(cuò)誤。

你也可以在.then()方法的第二個(gè)參數(shù)中處理錯(cuò)誤:

const promise = new Promise((resolve, reject) => {
  // 異步操作
  setTimeout(() => {
    resolve('成功');
  }, 1000);
});

promise
  .then(
    result => {
      console.log(result);
    },
    error => {
      console.error('捕獲到錯(cuò)誤:', error);
    }
  )
  .catch(error => {
    console.error('捕獲到錯(cuò)誤:', error);
  });

在這個(gè)例子中,我們?cè)?code>.then()方法中提供了兩個(gè)參數(shù):第一個(gè)參數(shù)處理成功的結(jié)果,第二個(gè)參數(shù)處理錯(cuò)誤。.catch()方法仍然可以用于捕獲任何未被.then()方法處理的錯(cuò)誤。

0