摘要:異步操作未完成異步操作成功異步操作失敗基本用法是一個(gè)構(gòu)造函數(shù),接收一個(gè)參數(shù),這個(gè)參數(shù)是函數(shù),同時(shí)這個(gè)參數(shù)函數(shù)要傳入兩個(gè)參數(shù),,分別表示異步操作執(zhí)行成功后的回調(diào)函數(shù)和異步操作執(zhí)行失敗后的回調(diào)函數(shù)。如果調(diào)用函數(shù),就會(huì)調(diào)用方法的第一個(gè)參數(shù)。
Promise對(duì)象
Promise 表示一個(gè)異步操作的最終結(jié)果,與之進(jìn)行交互的方式主要是 then 方法,該方法注冊(cè)了兩個(gè)回調(diào)函數(shù),用于接收 promise 的終值或本 promise 不能執(zhí)行的原因。
Promise 的狀態(tài)一個(gè) Promise 的當(dāng)前狀態(tài)必須為以下三種狀態(tài)中的一種:等待態(tài)(Pending)、執(zhí)行態(tài)(Fulfilled)和拒絕態(tài)(Rejected)。
異步操作未完成(pending)
異步操作成功(fulfilled)
異步操作失敗(rejected)
基本用法Promise是一個(gè)構(gòu)造函數(shù),Promise接收一個(gè)參數(shù),這個(gè)參數(shù)是函數(shù),同時(shí)這個(gè)參數(shù)函數(shù)要傳入兩個(gè)參數(shù):resolve,reject,分別表示異步操作執(zhí)行成功后的回調(diào)函數(shù)和異步操作執(zhí)行失敗后的回調(diào)函數(shù)。
Promise對(duì)象上有then、catch等方法
var getAjax = function (url) { const promise=new Promise(function(resolve,reject){ var xhr=new XMLHttpRequest() xhr.onreadystatechange=function(){ if(xhr.readyState!==4){ return } if(xhr.status===200){ resolve("成功時(shí)調(diào)用resolve函數(shù),并返回一個(gè)Promise對(duì)象") }else{ reject(new Error(xhr.statusText)) } } xhr.open("GET",url) xhr.send() }) return promise//返回promise對(duì)象 } getAjax("./ajax.html") .then((data)=>{ console.log("第一個(gè)參數(shù): "+ data)//打印resolve函數(shù)傳遞的參數(shù) return ("第一個(gè)then的第一個(gè)參數(shù)")//返回一個(gè)Promise對(duì)象并將數(shù)據(jù)傳遞給下一個(gè)then },(data)=>{ console.log("第二個(gè)參數(shù): "+ data)//打印reject函數(shù)傳遞的參數(shù) return("第一個(gè)then的第二個(gè)參數(shù)")//返回一個(gè)Promise對(duì)象并將數(shù)據(jù)傳遞給下一個(gè)then } ) .then((data)=>{ //如果剛開始在getAjax函數(shù)中是調(diào)用reject函數(shù),第一個(gè)then方法才會(huì)執(zhí)行第二個(gè)參數(shù),但是后面的then方法只執(zhí)行第一個(gè)參數(shù) console.log("第一個(gè)參數(shù): "+ data)//打印上一個(gè)then方法傳遞的參數(shù) return ("第二個(gè)then的第一個(gè)參數(shù)") },(data)=>{ console.log("第二個(gè)參數(shù): "+ data) return ("第二個(gè)then的第二個(gè)參數(shù)") } ) .then((data)=>{ console.log("第一個(gè)參數(shù): "+ data) },(data)=>{ console.log("第二個(gè)參數(shù): "+ data) } )
異步操作成功時(shí)調(diào)用resolve:
異步操作失敗時(shí)調(diào)用reject:
Promise是一個(gè)構(gòu)造函數(shù),通過new命令創(chuàng)建promise對(duì)象。在創(chuàng)建對(duì)象的時(shí)候傳遞一個(gè)參數(shù),這個(gè)參數(shù)是一個(gè)函數(shù),這個(gè)函數(shù)有兩個(gè)參數(shù),這兩個(gè)參數(shù)分別是resolve和reject,它們是兩個(gè)函數(shù),由 JavaScript 引擎提供,不用自己實(shí)現(xiàn)。成功時(shí)調(diào)用resolve方法,失敗時(shí)調(diào)用reject方法。
在promise對(duì)象上有then方法,這個(gè)方法可以傳遞兩個(gè)參數(shù),這兩個(gè)參數(shù)是函數(shù)。
如果調(diào)用resolve函數(shù),就會(huì)調(diào)用then方法的第一個(gè)參數(shù)。如果調(diào)用的是reject函數(shù),就會(huì)調(diào)用then方法的第二個(gè)參數(shù)。不管第一個(gè)then調(diào)用第一個(gè)參數(shù)還是第二個(gè)參數(shù),第一個(gè)then方法后面的then方法都會(huì)執(zhí)行第一個(gè)參數(shù)。
resolve方法和reject方法需要帶參數(shù),這個(gè)參數(shù)會(huì)傳遞給then方法對(duì)應(yīng)的參數(shù) 。在then方法中返回?cái)?shù)據(jù)時(shí),可以傳遞給下一個(gè)then方法。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108296.html
摘要:下一篇大概就是源碼方面的學(xué)習(xí)筆記了龜速學(xué)習(xí)中這一次我是去看了下規(guī)范照例傳送門圖靈社區(qū)規(guī)范首先吧個(gè)人總結(jié)下該用的詞解決結(jié)婚拒絕婉拒終值值傳家寶拒因好人卡等等異常車禍理下概念我們的的就像是一場姻緣對(duì)吧解決呢就是結(jié)婚成功啦傳家寶也如愿的傳給下一代 下一篇大概就是源碼方面的學(xué)習(xí)筆記了...龜速學(xué)習(xí)中... 這一次我是去看了下Promises/A+規(guī)范照例傳送門:圖靈社區(qū)Promises/A+規(guī)...
摘要:版本以及之前,本身還沒有異步執(zhí)行代碼的能力,宿主環(huán)境傳遞給引擎,然后按順序執(zhí)行,由宿主發(fā)起任務(wù)。采納引擎術(shù)語,把宿主發(fā)起的任務(wù)稱為宏觀任務(wù),把引擎發(fā)起的任務(wù)稱為微觀任務(wù)。基本用法示例的回調(diào)是一個(gè)異步的執(zhí)行過程。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要點(diǎn)筆記以及感悟,完整的...
摘要:版本以及之前,本身還沒有異步執(zhí)行代碼的能力,宿主環(huán)境傳遞給引擎,然后按順序執(zhí)行,由宿主發(fā)起任務(wù)。采納引擎術(shù)語,把宿主發(fā)起的任務(wù)稱為宏觀任務(wù),把引擎發(fā)起的任務(wù)稱為微觀任務(wù)。基本用法示例的回調(diào)是一個(gè)異步的執(zhí)行過程。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要點(diǎn)筆記以及感悟,完整的...
摘要:版本以及之前,本身還沒有異步執(zhí)行代碼的能力,宿主環(huán)境傳遞給引擎,然后按順序執(zhí)行,由宿主發(fā)起任務(wù)。采納引擎術(shù)語,把宿主發(fā)起的任務(wù)稱為宏觀任務(wù),把引擎發(fā)起的任務(wù)稱為微觀任務(wù)。基本用法示例的回調(diào)是一個(gè)異步的執(zhí)行過程。 筆記說明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過程的一些要點(diǎn)筆記以及感悟,完整的...
閱讀 1412·2021-09-23 11:21
閱讀 3111·2019-08-30 14:14
閱讀 3195·2019-08-30 13:56
閱讀 4144·2019-08-30 11:20
閱讀 1956·2019-08-29 17:23
閱讀 2768·2019-08-29 16:14
閱讀 1699·2019-08-28 18:18
閱讀 1495·2019-08-26 12:14