偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

promise(A).catch(f1).then(f2),f1執(zhí)行后f2會執(zhí)行嗎,為什么?

開發(fā) 前端
在使用 JavaScript 進(jìn)行 HTTP 請求時,可以通過 XMLHttpRequest? 對象的 getResponseHeader() 方法來獲取響應(yīng)頭中的 Location 字段,或者通過瀏覽器的開發(fā)者工具查看網(wǎng)絡(luò)請求的響應(yīng)頭。

前言

習(xí)慣性刷刷面經(jīng),習(xí)慣性記錄,現(xiàn)在找工作真的卷。有換工作的還是要提前準(zhǔn)備,建議騎驢找馬,別裸辭。最近也是剛?cè)肼氁患倚鹿荆杏X入坑了,一言難盡。

分享幾個小問題:

promise(A).catch(f1).then(f2),f1執(zhí)行后f2會執(zhí)行嗎?

在這種情況下,如果 f1 被調(diào)用并且返回一個 rejected 狀態(tài)的 Promise,那么 f2 將會執(zhí)行。這是因為 .catch() 方法返回的是一個新的 Promise,它會等待原始 Promise(即 A)解決或拒絕,然后根據(jù) A 的狀態(tài)來決定它自己的狀態(tài)。

更詳細(xì)地解釋一下:

  1. 如果 Promise A 被拒絕,并且 f1 被調(diào)用處理了這個拒絕狀態(tài),那么 f1 的返回值將成為新的 Promise 的解決值(resolved value),這個新的 Promise 將會變成 resolved 狀態(tài)。
  2. 無論 f1 的處理結(jié)果如何,接下來緊跟在 .catch(f1) 后的 .then(f2) 都將會執(zhí)行,因為它會等待前一個 Promise(即 A 或 f1 返回的 Promise)的狀態(tài)。如果前一個 Promise 是 resolved 狀態(tài),那么 f2 就會被調(diào)用;如果是 rejected 狀態(tài),同樣 f2 也會被調(diào)用。

因此,即使 f1 處理了原始 Promise A 的拒絕狀態(tài),接下來的 .then(f2) 仍然會執(zhí)行。這是因為 .catch() 返回的新 Promise 是 resolved 狀態(tài),而不管它是由于原始 Promise A 的狀態(tài),還是由于 f1 的處理。

promise執(zhí)行順序當(dāng)涉及到 Promise 的執(zhí)行順序和原理時,我們需要理解 Promise 的異步特性以及其內(nèi)部機制。下面是 Promise 的執(zhí)行順序和原理的一些關(guān)鍵點:

  1. Promise 的狀態(tài):

Promise 對象有三種狀態(tài):pending(進(jìn)行中)、fulfilled(已完成)和rejected(已拒絕)。

初始狀態(tài)是 pending,然后可能轉(zhuǎn)變?yōu)?fulfilled 或 rejected。

  1. 執(zhí)行順序:

當(dāng)一個 Promise 被創(chuàng)建并執(zhí)行時,它處于 pending 狀態(tài)。

Promise 的執(zhí)行順序與 JavaScript 事件循環(huán)(Event Loop)密切相關(guān)。

當(dāng) Promise 的狀態(tài)發(fā)生改變時(即由 pending 變?yōu)?fulfilled 或 rejected),將調(diào)用相關(guān)的處理函數(shù)(.then() 或 .catch())來處理結(jié)果。

  1. 原理:

Promise 的構(gòu)造函數(shù)接受一個函數(shù)作為參數(shù)(通常稱為執(zhí)行器函數(shù)),該函數(shù)在 Promise 被創(chuàng)建時立即執(zhí)行。

執(zhí)行器函數(shù)接受兩個參數(shù):resolve 和 reject,分別用于將 Promise 的狀態(tài)從 pending 轉(zhuǎn)變?yōu)?fulfilled 或 rejected。

在執(zhí)行器函數(shù)中,通過調(diào)用 resolve(value) 將 Promise 的狀態(tài)改變?yōu)?fulfilled,并傳遞一個解析值(resolved value);通過調(diào)用 reject(reason) 將 Promise 的狀態(tài)改變?yōu)?rejected,并傳遞一個拒絕原因(rejection reason)。

.then() 方法用于注冊 Promise 成功狀態(tài)的回調(diào)函數(shù),.catch() 方法用于注冊 Promise 失敗狀態(tài)的回調(diào)函數(shù)。

.then() 和 .catch() 方法返回一個新的 Promise,因此可以進(jìn)行鏈?zhǔn)秸{(diào)用。

  1. 異步特性:

Promise 是一種用于處理異步操作的對象。它可以通過 resolve 和 reject 函數(shù)來處理異步操作的結(jié)果,并通過 .then() 和 .catch() 方法來處理異步操作的狀態(tài)。

302怎么確定重定向路徑

當(dāng)收到 HTTP 狀態(tài)碼 302 表示臨時重定向時,客戶端需要根據(jù)響應(yīng)頭中的 Location 字段確定重定向的路徑。這個 Location 字段包含了重定向的目標(biāo) URL。

具體步驟如下:

  1. 發(fā)送請求:客戶端發(fā)送 HTTP 請求到服務(wù)器。
  2. 接收響應(yīng):客戶端收到服務(wù)器的響應(yīng),如果響應(yīng)狀態(tài)碼是 302,則說明存在臨時重定向。
  3. 查看響應(yīng)頭:客戶端會查看響應(yīng)頭中的 Location 字段,該字段包含了重定向的目標(biāo) URL。
  4. 訪問重定向路徑:客戶端根據(jù) Location 字段中的 URL 發(fā)送新的 HTTP 請求,以訪問重定向的路徑。

例如,在使用 JavaScript 進(jìn)行 HTTP 請求時,可以通過 XMLHttpRequest 對象的 getResponseHeader() 方法來獲取響應(yīng)頭中的 Location 字段,或者通過瀏覽器的開發(fā)者工具查看網(wǎng)絡(luò)請求的響應(yīng)頭。

在使用其他編程語言或工具進(jìn)行 HTTP 請求時,也可以通過相應(yīng)的方式獲取響應(yīng)頭中的 Location 字段,以確定重定向的路徑。

責(zé)任編輯:武曉燕 來源: 海燕技術(shù)棧
相關(guān)推薦

2024-04-20 18:41:02

聯(lián)想

2013-05-30 09:39:34

2009-11-11 12:04:27

AMDTechEDMagny-Cours

2015-04-13 15:41:53

SAPF1

2023-03-07 10:56:54

CIO數(shù)字化轉(zhuǎn)型

2021-04-12 05:53:53

Excel軟件F1~F12

2011-07-11 10:56:54

WCDMA

2014-04-22 10:49:25

上海移動4GF1大獎賽

2012-05-30 16:54:18

Google

2013-04-08 16:51:52

戴爾F1

2024-04-25 16:20:30

聯(lián)想旗艦工作站

2020-07-29 09:50:54

人工智能網(wǎng)絡(luò)安全技術(shù)

2017-04-11 10:49:52

飛魚星

2014-01-19 17:59:55

大神F1配置

2012-04-28 17:49:45

戴爾

2017-09-13 10:02:53

人工智能阿里云FPGA

2015-08-21 19:06:32

病毒酷派大神

2010-07-30 13:05:36

瀏覽器

2018-07-20 17:18:17

酷比

2012-05-21 11:15:50

金庫防爆數(shù)據(jù)中心
點贊
收藏

51CTO技術(shù)棧公眾號