欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ES6   Promise基礎(chǔ)用法(resolve、reject、then、catch,all)

 更新時間:2024年09月25日 10:07:33   作者:n'an-n'an  
Promise是JavaScript中處理異步操作的對象,它有三種狀態(tài):Pending、Fulfilled、Rejected,使用new Promise創(chuàng)建Promise對象,通過resolve和reject改變狀態(tài),then和catch方法用于處理成功和失敗的結(jié)果,本文介紹ES6 Promise用法,感興趣的朋友一起看看吧

在 JavaScript 中,Promise 是一種用于處理異步操作的對象。它允許開發(fā)者以一種更清晰和更可控的方式來處理異步操作,避免回調(diào)地獄的問題。Promise 對象有以下幾個狀態(tài):

Pending:初始狀態(tài),表示異步操作正在進行中。
Fulfilled:表示異步操作成功完成。
Rejected:表示異步操作失敗。
Promise 對象提供了兩個方法來改變其狀態(tài):resolve 和 reject。then 和 catch 方法用于處理 Promise 的成功和失敗狀態(tài)。all 方法用于等待一組 Promise 實例都完成。

以下是 Promise 的基礎(chǔ)用法詳解:

創(chuàng)建一個 Promise: 使用 new Promise() 創(chuàng)建一個新的 Promise 對象,并傳入一個函數(shù)作為參數(shù)。這個函數(shù)稱為執(zhí)行器(executor),它接受兩個參數(shù):resolve 和 reject。resolve 函數(shù)用于將 Promise 的狀態(tài)設(shè)置為 fulfilled,而 reject 函數(shù)用于將 Promise 的狀態(tài)設(shè)置為 rejected。

const promise = new Promise((resolve, reject) => {
  // 異步操作
  if (/* 異步操作成功 */) {
    resolve(/* 成功的結(jié)果 */);
  } else {
    reject(/* 失敗的原因 */);
  }
});

使用 then 方法: then 方法用于處理 Promise 的 fulfilled 狀態(tài)。它接受兩個參數(shù):一個函數(shù)用于處理成功的結(jié)果,另一個函數(shù)用于處理失敗的結(jié)果(可選)。

promise.then((result) => {
  // 成功的回調(diào)函數(shù)
  console.log(result);
}, (error) => {
  // 失敗的回調(diào)函數(shù)(可選)
  console.error(error);
});

使用 catch 方法: catch 方法用于處理 Promise 的 rejected 狀態(tài)。它相當(dāng)于只傳入失敗回調(diào)函數(shù)的 then 方法。

promise.catch((error) => {
  // 失敗的回調(diào)函數(shù)
  console.error(error);
});

使用 all 方法: all 方法用于等待一組 Promise 實例都完成。它返回一個新的 Promise 對象,當(dāng)所有的 Promise 實例都成功時,這個新的 Promise 對象才會成功;如果有任何一個 Promise 實例失敗,那么這個新的 Promise 對象也會失敗。

const promises = [promise1, promise2, promise3];
Promise.all(promises).then((results) => {
  // 所有 Promise 實例都成功時的回調(diào)函數(shù)
  console.log(results);
}).catch((error) => {
  // 任何一個 Promise 實例失敗時的回調(diào)函數(shù)
  console.error(error);
});

使用 race 方法: race 方法用于等待一組 Promise 實例中的任意一個完成。它返回一個新的 Promise 對象,當(dāng)?shù)谝粋€ Promise 實例完成時,這個新的 Promise 對象就會完成,無論其是成功還是失敗。

const promises = [promise1, promise2, promise3];
Promise.race(promises).then((result) => {
  // 第一個 Promise 實例完成時的回調(diào)函數(shù)
  console.log(result);
}).catch((error) => {
  // 第一個 Promise 實例失敗時的回調(diào)函數(shù)
  console.error(error);
});

到此這篇關(guān)于ES6 Promise基礎(chǔ)用法(resolve、reject、then、catch,all)的文章就介紹到這了,更多相關(guān)ES6 Promise用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論