新聞中心
then() 是 JavaScript 中 Promise 對(duì)象的一個(gè)方法,用于處理異步操作的結(jié)果,當(dāng) Promise 對(duì)象的狀態(tài)變?yōu)?resolved(成功)時(shí),then() 方法會(huì)被調(diào)用,并將結(jié)果傳遞給指定的回調(diào)函數(shù)。then() 方法返回一個(gè)新的 Promise 對(duì)象,可以繼續(xù)鏈?zhǔn)秸{(diào)用其他 then() 方法或 catch() 方法。

then() 方法的基本用法
1、接收兩個(gè)參數(shù):第一個(gè)參數(shù)是 Promise 狀態(tài)變?yōu)?resolved 時(shí)執(zhí)行的回調(diào)函數(shù),第二個(gè)參數(shù)是 Promise 狀態(tài)變?yōu)?rejected 時(shí)執(zhí)行的回調(diào)函數(shù)。
2、回調(diào)函數(shù)接收一個(gè)參數(shù),即 Promise 的結(jié)果值。
3、如果只關(guān)心 Promise 成功時(shí)的結(jié)果,可以省略第二個(gè)參數(shù)。
示例代碼:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功');
}, 1000);
});
promise.then(
(result) => {
console.log('成功:', result);
},
(error) => {
console.log('失?。?, error);
}
);
then() 方法的鏈?zhǔn)秸{(diào)用
通過(guò) then() 方法返回的新 Promise 對(duì)象,可以繼續(xù)鏈?zhǔn)秸{(diào)用其他 then() 方法或 catch() 方法。
示例代碼:
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功1');
}, 1000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功2');
}, 1000);
});
promise1
.then((result) => {
console.log('第一步:', result);
return promise2;
})
.then((result) => {
console.log('第二步:', result);
})
.catch((error) => {
console.log('失?。?, error);
});
then() 方法的異常處理
then() 方法中的回調(diào)函數(shù)拋出異常,可以通過(guò)鏈?zhǔn)秸{(diào)用 catch() 方法進(jìn)行捕獲。
示例代碼:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功');
}, 1000);
});
promise
.then((result) => {
console.log('成功:', result);
throw new Error('出錯(cuò)了');
})
.catch((error) => {
console.log('失敗:', error);
});
文章名稱:JavaScrpt中的函數(shù)then是什么意思
標(biāo)題來(lái)源:http://fisionsoft.com.cn/article/coshiis.html


咨詢
建站咨詢
