中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

廈門市建設(shè)工程安全管理協(xié)會網(wǎng)站廣告推廣平臺網(wǎng)站有哪些

廈門市建設(shè)工程安全管理協(xié)會網(wǎng)站,廣告推廣平臺網(wǎng)站有哪些,hao123網(wǎng)站源碼制作2015最新仿,app免費下載安裝在 JavaScript 中,Promise 是一個對象,它表示一個可能還不可用,但會在未來解決的值。Promises 用于處理異步操作,例如發(fā)出網(wǎng)絡(luò)請求或訪問數(shù)據(jù)庫,其中結(jié)果不是立即可用的。如果你準(zhǔn)備好了,我想開始我們的冒險…

在 JavaScript 中,Promise 是一個對象,它表示一個可能還不可用,但會在未來解決的值。Promises 用于處理異步操作,例如發(fā)出網(wǎng)絡(luò)請求或訪問數(shù)據(jù)庫,其中結(jié)果不是立即可用的。

如果你準(zhǔn)備好了,我想開始我們的冒險……


承諾如何運作?

APromise是創(chuàng)建承諾時不一定知道的值的代理。它允許您將處理程序與異步操作的最終成功值或失敗原因相關(guān)聯(lián)。這讓異步方法像同步方法一樣返回值:異步方法不是立即返回最終值,而是返回一個在未來某個時間點提供值的承諾。


Promise 具有三種可能的狀態(tài):

動圖

  1. Pending: Promise 的初始狀態(tài)。Promise 既未實現(xiàn)也未被拒絕。

  1. Fulfilled: Promise 已解決,結(jié)果值可用。

  1. Rejected: Promise 已被拒絕并發(fā)生錯誤。


一旦 Promise 被解決,它就不能被重新設(shè)置。or函數(shù)只能調(diào)用一次,以后對這些函數(shù)的任何調(diào)用都不會產(chǎn)生任何效果resolve()。reject()已解決的 Promise 的不變性是一個重要的特性,因為它確保 Promise 的值保持一致和可預(yù)測。一旦 Promise 被解決,它的值就不能改變,這有助于防止意外行為并使代碼更容易推理。


如何創(chuàng)建承諾?

Promise 是使用Promise構(gòu)造函數(shù)創(chuàng)建的,它接受一個參數(shù),一個稱為executor 的函數(shù)。executor 函數(shù)有兩個參數(shù):resolvereject。這些是在 Promise 被fulfilledrejected時調(diào)用的函數(shù)。

告訴你我的意思..

上面示例中的 Promise 將在一秒后 resolve,并且 resolved Promise 的值將是 users 數(shù)組。

創(chuàng)建 Promise 后,您可以使用該then方法附加一個回調(diào)函數(shù),該回調(diào)函數(shù)將在 Promise 完成時調(diào)用。該then方法有兩個參數(shù):解析值的回調(diào)函數(shù)和拒絕值的回調(diào)函數(shù)。

告訴你我的意思..


繼續(xù)我們的冒險,讓我們看一個被拒絕的 Promise 的例子。

告訴你我的意思..


鏈?zhǔn)匠兄Z

以下方法用于將進(jìn)一步的操作與已確定的承諾相關(guān)聯(lián)。由于這些方法返回承諾,因此可以將它們鏈接起來

Promise.prototype.then()
Promise.prototype.catch()
Promise.prototype.finally()

動圖

在 JavaScript 中鏈接 promise 涉及創(chuàng)建一系列依次執(zhí)行的 promise。鏈中的每個承諾都取決于前一個承諾的成功完成,因此如果鏈中的任何承諾失敗,則整個鏈都會失敗。

讓我們看看如何在 JavaScript 中鏈接承諾:

在這里,該fetchData()函數(shù)用于從遠(yuǎn)程 API 獲取數(shù)據(jù)并對其執(zhí)行一些操作。該fetchData()函數(shù)返回一個使用操作結(jié)果解析的 Promise。

Promise 鏈?zhǔn)紫葟?API 獲取用戶數(shù)據(jù),然后使用第一個用戶的 ID 獲取他們的帖子,最后使用第一個帖子的 ID 獲取該帖子的評論。鏈中的每個then()方法都處理前一個 Promise 的解析值,最后一個catch()方法處理鏈中發(fā)生的任何錯誤。

then()我們可以根據(jù)要求使用方法創(chuàng)建許多鏈。與同步代碼一樣,鏈接將產(chǎn)生一個串行運行的序列。讓我們看一個簡單的例子..


承諾的好處

在處理 JavaScript 中的異步操作時,Promises 比傳統(tǒng)的基于回調(diào)的方法有幾個好處。一些主要好處包括:

  1. 更好的可讀性:與傳統(tǒng)的基于回調(diào)的方法相比,Promises 允許您編寫更具可讀性和更易于理解的代碼。使用 Promises,您可以按順序?qū)惒讲僮麈溄釉谝黄?#xff0c;這使得操作的執(zhí)行順序一目了然。

  1. 改進(jìn)的錯誤處理: Promises 使處理異步操作期間發(fā)生的錯誤變得更加容易。使用 Promises,您可以使用 catch 方法來處理鏈中任何步驟中發(fā)生的錯誤,而不必為每個步驟單獨處理錯誤。

  1. 避免回調(diào)地獄: Promises 可以幫助您避免“回調(diào)地獄”,即您擁有一連串嵌套的回調(diào),這會變得難以管理和調(diào)試。使用 Promises,您可以將異步操作鏈接在一起,而無需嵌套多個級別的回調(diào)。

  1. 返回值的能力: Promises 允許您從異步操作返回一個值,這使得將一個操作的結(jié)果按順序傳遞給另一個操作變得更加容易。當(dāng)您需要按順序執(zhí)行多個異步操作并且需要在下一個操作中使用每個操作的結(jié)果時,這尤其有用。

  1. 更好的兼容性: Promises 是現(xiàn)代 JavaScript 中的標(biāo)準(zhǔn)化功能,并且受到所有現(xiàn)代瀏覽器和 Node.js 的支持。這意味著 Promises 可以在不同的環(huán)境中使用,而不需要為每個環(huán)境使用不同的代碼。


如何取消承諾?

在現(xiàn)代 JavaScript 中——不,Promise 一旦創(chuàng)建就無法取消。它將執(zhí)行其代碼并解決或拒絕,并且沒有內(nèi)置的方式來取消操作。

您可以使用一些技術(shù)來模擬取消:

  1. 超時:如果解決時間太長,您可以使用超時來拒絕 Promise。如果您正在發(fā)出網(wǎng)絡(luò)請求并希望限制所花費的時間,則此技術(shù)很有用。

  1. 中止網(wǎng)絡(luò)請求:您可以使用中止控制器來中止網(wǎng)絡(luò)請求。Fetch API 提供了一個 AbortController API,允許您在網(wǎng)絡(luò)請求完成之前取消它。

  1. 使用標(biāo)志:您可以在代碼中使用標(biāo)志來模擬取消。您可以將標(biāo)志設(shè)置為 true 以指示應(yīng)取消該操作,然后檢查您的 Promise 代碼中的標(biāo)志以確定是繼續(xù)還是拒絕 Promise。

值得注意的是,這些技術(shù)都沒有真正取消 Promise;他們只是提早拒絕它。如果您需要真正的取消,您可能需要使用提供取消支持的庫,例如rxjsbluebird。


藍(lán)鳥承諾取消

Bluebird是一個流行的 JavaScript Promise 庫,它提供高級功能,包括 Promise 取消。Promise 取消是取消 Promise 的能力,這對于取消正在進(jìn)行的或長時間運行的異步操作很有用。

在Bluebird的幫助下,使用該Promise.cancel()方法實現(xiàn)了Promise取消。此方法不是標(biāo)準(zhǔn) Promise API 的一部分,并且特定于 Bluebird。

要在 Bluebird 中使用 Promise 取消,您需要使用new Promise()構(gòu)造函數(shù)創(chuàng)建一個可取消的 Promise 并將取消函數(shù)作為參數(shù)傳遞。當(dāng) Promise 被取消時,將調(diào)用 cancel 函數(shù)。


并行的多個承諾

在Promises的幫助下,可以更輕松地并行管理和執(zhí)行多個異步操作,并等待所有操作完成后再繼續(xù)。

告訴你我的意思..

使用語法創(chuàng)建四個承諾new Promise()。每個承諾在使用方法的特定超時期限后被解決拒絕setTimeout()。該error函數(shù)被定義為將任何錯誤記錄到控制臺。

創(chuàng)建上述承諾后,現(xiàn)在我們將看到使用不同承諾方法的實例。

Promise.all() 方法

下面的實例使用Promise.all()方法,該方法接受一組承諾并等待所有承諾得到履行。一旦所有的 promise 都得到解決,then()就會執(zhí)行方法,該方法按照它們在 promise 數(shù)組中傳遞的順序返回一個值數(shù)組。在這種情況下,所有三個承諾都已解決,并且它們的值被記錄到控制臺。

這是一個很好的方法,例如使用兩個不同的請求獲取數(shù)據(jù),然后在兩個請求完成后將它們組合起來。

Promise.any() 方法

下面的實例使用的Promise.any()方法接受一組承諾并等待其中任何一個被履行。一旦第一個承諾得到解決,then()就會執(zhí)行返回第一個承諾的已解決值的方法。在這種情況下,第三個承諾在其他兩個之前得到解決,并且它的值被記錄到控制臺。

Promise.race() 方法

下面的實例使用的Promise.race()方法接受一組承諾并等待第一個承諾被解決或拒絕。一旦第一個承諾被解決,then()方法就會被執(zhí)行,它返回第一個已解決承諾的已解決或被拒絕的值。在這種情況下,第三個承諾在其他兩個之前得到解決,因此它的值被記錄到控制臺。

Promise.allSettled() 方法

下面的實例使用的Promise.allSettled()方法接受一組承諾并等待所有承諾得到解決,即 resolved 或 rejected。一旦所有的承諾都得到解決,then()就會執(zhí)行返回一個對象數(shù)組的方法,每個對象包含每個承諾的狀態(tài)價值原因。在這種情況下,所有承諾都已解決,因此所有承諾的狀態(tài)和值或原因都記錄到控制臺。


結(jié)論

Fetch API 是舊 XMLHttpRequest 對象的現(xiàn)代替代品,它基于 Promises。當(dāng)您使用 Fetch API 發(fā)出請求時,您會得到一個解析為響應(yīng)對象的 Promise。這允許您使用該then()方法以清晰易讀的方式處理響應(yīng)。

異步函數(shù)是 JavaScript 的新成員,它們構(gòu)建在 Promises 之上。異步函數(shù)允許您編寫看起來像同步代碼的異步代碼,使其更易于閱讀和編寫。異步函數(shù)使用 await 關(guān)鍵字等待 Promises 在繼續(xù)之前解析,從而可以編寫看起來像一系列同步語句的異步代碼。

在這兩種習(xí)慣用法中,Promises 都用于以清晰易讀的方式處理異步操作。通過使用 Promises,您可以避免回調(diào)地獄并編寫易于推理的異步代碼。


動機(jī)

提醒:
無論別人怎么說和怎么想,你都是很棒的..

🍀支持

請考慮通過訂閱我們的頻道來關(guān)注和支持我們。非常感謝您的支持,這將幫助我們繼續(xù)創(chuàng)作供您欣賞的內(nèi)容。預(yù)先感謝您對我們的支持!

http://www.risenshineclean.com/news/62358.html

相關(guān)文章:

  • 公司做網(wǎng)站比較好的平臺培訓(xùn)班報名
  • 免費電視劇網(wǎng)站大全在線觀看優(yōu)化網(wǎng)站制作方法大全
  • 男女做羞羞事網(wǎng)站seo是什么職務(wù)
  • app開發(fā)網(wǎng)站建設(shè)公司哪家好有免費做網(wǎng)站的嗎
  • 湖南平臺網(wǎng)站建設(shè)哪里有關(guān)鍵詞排名seo
  • 宏潤建設(shè)集團(tuán)網(wǎng)站全球網(wǎng)站排名查詢
  • 網(wǎng)站做優(yōu)化按點擊收費抖音推廣引流
  • 大同網(wǎng)站建設(shè)設(shè)計seo排名技術(shù)軟件
  • 接網(wǎng)站開發(fā)的公司合肥網(wǎng)站優(yōu)化搜索
  • 制作 網(wǎng)站導(dǎo)航 下拉菜單今日國際軍事新聞最新消息
  • 做網(wǎng)站 怎么提升瀏覽量seo推廣官網(wǎng)
  • 做網(wǎng)絡(luò)課堂的平臺有哪些網(wǎng)站鄭州seo推廣外包
  • 運動網(wǎng)頁設(shè)計哪里有seo排名優(yōu)化
  • 做網(wǎng)站建設(shè)費用nba最新排名東西部
  • 重慶建設(shè)摩托車質(zhì)量怎么樣seo入門版
  • 幫詐騙公司做網(wǎng)站企業(yè)網(wǎng)站推廣技巧
  • 阜寧做網(wǎng)站的價格怎么推廣自己的網(wǎng)站
  • php 網(wǎng)站 項目cilimao磁力貓搜索引擎
  • wordpress手機(jī)評論百度seo新站優(yōu)化
  • swiper做的網(wǎng)站百度網(wǎng)頁版瀏覽器入口
  • 青島做網(wǎng)站費用廚師培訓(xùn)機(jī)構(gòu)
  • 平臺企業(yè)采用勞務(wù)派遣方式用工的seo的形式有哪些
  • 網(wǎng)站自做書本永久免費的網(wǎng)站服務(wù)器有哪些軟件
  • 建設(shè)一個網(wǎng)站的步驟有哪些網(wǎng)絡(luò)推廣公司怎么找客戶
  • 百度搜索網(wǎng)站介紹杭州上城區(qū)抖音seo有多好
  • 做網(wǎng)站優(yōu)化哪家公司好關(guān)鍵詞自動優(yōu)化
  • 合肥知名網(wǎng)站制作上海關(guān)鍵詞優(yōu)化排名哪家好
  • 松原網(wǎng)站建設(shè)網(wǎng)站建設(shè)的好公司
  • 做網(wǎng)站網(wǎng)頁掙錢不免費刷seo
  • 深圳做網(wǎng)站公司地點十大免費網(wǎng)站推廣平臺