es6的promise怎么使用

今天小編給大家分享一下es6的promise怎么使用的相關(guān)知識點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為上1000家服務(wù),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!

在es6中,promise是“承諾”的意思,承諾表示異步操作的結(jié)果,是新增的異步編程解決方法,在代碼中表現(xiàn)為一個對象,主要用于解決回調(diào)地域問題,語法為“new Promise(function(resolve, reject){..})”。

本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。

es6的promise是什么意思

promise 是承諾的意思,其背后的核心思想是,承諾表示異步操作的結(jié)果。

是es6新增的異步編程解決方案,在代碼中表現(xiàn)為一個對象。

promise是js異步編程提供的解決方案,主要用來解決回調(diào)地域問題。

Promise有三種狀態(tài),分別是

  • Pending(進(jìn)行中) 初始狀態(tài)

  • Fulfilled (已成功) 意味著操作成功

  • rejected (已失敗) 意味著操作失敗

注意:Promise對象的三種狀態(tài),不受外界的影響,只有promise中存放的將來會結(jié)束的事件才會影響。也就是只有異步操作的結(jié)果,可以決定當(dāng)前是哪一種狀態(tài),任何其他操作都無法改變這個狀態(tài)

Promise狀態(tài)一旦改變、不可逆

Pendding(進(jìn)行中)狀態(tài)可以轉(zhuǎn)變?yōu)镕ulfilled(已成功)狀態(tài)

Pendding(進(jìn)行中)狀態(tài)可以轉(zhuǎn)變?yōu)?rejected(已失?。顟B(tài)

promise只有這兩種情況發(fā)生狀態(tài)改變,一旦發(fā)生這兩種狀態(tài)改變,那么狀態(tài)就凝固了,會一直保持這個結(jié)果。

基本使用方法

語法:

new Promise( function(resolve, reject) {...} /* executor */  )

原理:

構(gòu)建 Promise 對象時,需要傳入一個 executor 函數(shù),主要業(yè)務(wù)流程都在 executor 函數(shù)中執(zhí)行。

Promise構(gòu)造函數(shù)執(zhí)行時立即調(diào)用executor 函數(shù), resolve 和 reject

兩個函數(shù)作為參數(shù)傳遞給executor,resolve 和 reject

函數(shù)被調(diào)用時,分別將promise的狀態(tài)改為fulfilled(完成)或rejected(失?。?。一旦狀態(tài)改變,就不會再變,任何時候都可以得到這個結(jié)果。

在 executor 函數(shù)中調(diào)用 resolve 函數(shù)后,會觸發(fā) promise.then 設(shè)置的回調(diào)函數(shù);而調(diào)用 reject

函數(shù)后,會觸發(fā) promise.catch 設(shè)置的回調(diào)函數(shù)。

如下圖所示:

es6的promise怎么使用

示例如下:

創(chuàng)建一個新的Promise對象

需要傳入一個回調(diào)函數(shù),回調(diào)函數(shù)有2個參數(shù),分別代表resolve(解決),reject(拒絕),并且兩個參數(shù)都是函數(shù)

如果兩個參數(shù)都不調(diào)用,默認(rèn)pending狀態(tài)

let promise=new Promise(function(resolve,reject){
});//pending狀態(tài)

調(diào)用resolve 函數(shù),代表Promise的狀態(tài),會從pending==>fulfilled

let promise=new Promise(function(resolve,reject){
resolve();
});//fulfilled狀態(tài)

調(diào)用reject函數(shù),代表Promise的狀態(tài),會從pending==>rejected

let promise=new Promise(function(resolve,reject){
reject();
});//rejected 狀態(tài)

以上就是“es6的promise怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:es6的promise怎么使用
網(wǎng)頁地址:http://muchs.cn/article30/iepepo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)微信公眾號、搜索引擎優(yōu)化域名注冊、App開發(fā)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司