今天小編給大家分享一下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)為一個(gè)對象,主要用于解決回調(diào)地域問題,語法為“new Promise(function(resolve, reject){..})”。
本教程操作環(huán)境:windows10系統(tǒng)、ECMAScript 6.0版、Dell G3電腦。
promise 是承諾的意思,其背后的核心思想是,承諾表示異步操作的結(jié)果。
是es6新增的異步編程解決方案,在代碼中表現(xiàn)為一個(gè)對象。
promise是js異步編程提供的解決方案,主要用來解決回調(diào)地域問題。
Promise有三種狀態(tài),分別是
Pending(進(jìn)行中) 初始狀態(tài)
Fulfilled (已成功) 意味著操作成功
rejected (已失敗) 意味著操作失敗
注意:Promise對象的三種狀態(tài),不受外界的影響,只有promise中存放的將來會(huì)結(jié)束的事件才會(huì)影響。也就是只有異步操作的結(jié)果,可以決定當(dāng)前是哪一種狀態(tài),任何其他操作都無法改變這個(gè)狀態(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)就凝固了,會(huì)一直保持這個(gè)結(jié)果。
基本使用方法
語法:
new Promise( function(resolve, reject) {...} /* executor */ )
原理:
構(gòu)建 Promise 對象時(shí),需要傳入一個(gè) executor 函數(shù),主要業(yè)務(wù)流程都在 executor 函數(shù)中執(zhí)行。
Promise構(gòu)造函數(shù)執(zhí)行時(shí)立即調(diào)用executor 函數(shù), resolve 和 reject
兩個(gè)函數(shù)作為參數(shù)傳遞給executor,resolve 和 reject
函數(shù)被調(diào)用時(shí),分別將promise的狀態(tài)改為fulfilled(完成)或rejected(失?。R坏顟B(tài)改變,就不會(huì)再變,任何時(shí)候都可以得到這個(gè)結(jié)果。
在 executor 函數(shù)中調(diào)用 resolve 函數(shù)后,會(huì)觸發(fā) promise.then 設(shè)置的回調(diào)函數(shù);而調(diào)用 reject
函數(shù)后,會(huì)觸發(fā) promise.catch 設(shè)置的回調(diào)函數(shù)。
如下圖所示:
示例如下:
創(chuàng)建一個(gè)新的Promise對象
需要傳入一個(gè)回調(diào)函數(shù),回調(diào)函數(shù)有2個(gè)參數(shù),分別代表resolve(解決),reject(拒絕),并且兩個(gè)參數(shù)都是函數(shù)
如果兩個(gè)參數(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),會(huì)從pending==>fulfilled
let promise=new Promise(function(resolve,reject){ resolve(); });//fulfilled狀態(tài)
調(diào)用reject函數(shù),代表Promise的狀態(tài),會(huì)從pending==>rejected
let promise=new Promise(function(resolve,reject){ reject(); });//rejected 狀態(tài)
以上就是“es6的promise怎么使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站題目:es6的promise怎么使用
網(wǎng)頁地址:http://jinyejixie.com/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)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)