gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

promise是es6的嗎

是的。promise是ECMAScript 6新增的引用類(lèi)型,表示一個(gè)異步操作的最終完成或者失敗。promise是解決異步編程調(diào)用代碼邏輯編寫(xiě)過(guò)于復(fù)雜的問(wèn)題的,當(dāng)網(wǎng)絡(luò)請(qǐng)求非常復(fù)雜時(shí),就會(huì)出現(xiàn)回調(diào)地獄,這樣如果將這些代碼寫(xiě)在一起就會(huì)看起來(lái)很復(fù)雜,且不利于閱讀,如果用promise的話(huà)就會(huì)讓代碼看起來(lái)更加美觀優(yōu)雅。

promise是es6的嗎

前端(vue)入門(mén)到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用

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

ECMAScript 6 增加了對(duì) Promises/A+ 規(guī)范的完善支持,即 Promise 類(lèi)型。一經(jīng)推出,Promise 就大受歡迎,成為了主導(dǎo)性的異步編程機(jī)制。所有現(xiàn)代瀏覽器都支持 ES6 期約,很多其他瀏覽器 API 也以期約為基礎(chǔ)。

Promise 是 ECMAScript 6 新增的引用類(lèi)型,表示一個(gè)異步操作的最終完成或者失敗。

一、promise函數(shù)是干什么的

promise函數(shù)是解決異步編程調(diào)用代碼邏輯編寫(xiě)過(guò)于復(fù)雜的問(wèn)題的,當(dāng)網(wǎng)絡(luò)請(qǐng)求非常復(fù)雜時(shí),就會(huì)出現(xiàn)回調(diào)地獄,這樣如果將這些代碼寫(xiě)在一起就會(huì)看起來(lái)很復(fù)雜,且不利于閱讀,如果用promise的話(huà)就會(huì)讓代碼看起來(lái)更加美觀優(yōu)雅

二、Promise三種狀態(tài)

首先, 當(dāng)我們開(kāi)發(fā)中有異步操作時(shí), 就可以給異步操作包裝一個(gè)Promise
異步操作之后會(huì)有三種狀態(tài)

pending:等待狀態(tài),比如正在進(jìn)行網(wǎng)絡(luò)請(qǐng)求,或者定時(shí)器沒(méi)有到時(shí)間。 fulfill:滿(mǎn)足狀態(tài),當(dāng)我們主動(dòng)回調(diào)了resolve時(shí),就處于該狀態(tài),并且會(huì)回調(diào).then() reject:拒絕狀態(tài),當(dāng)我們主動(dòng)回調(diào)了reject時(shí),就處于該狀態(tài),并且會(huì)回調(diào).catch()
登錄后復(fù)制

三、實(shí)現(xiàn)

1,then和catch

1.出于未決狀態(tài)的函數(shù)是同步的 會(huì)立即執(zhí)行
2.then和catch是異步的 就算promise對(duì)象里面沒(méi)有異步操作 讓then方法或者catch立即執(zhí)行 那么 這里兩個(gè)方法或被加入到事件隊(duì)列中等待執(zhí)行

//參數(shù) 函數(shù)(resolve,reject)     new Promise((resolve, reject) => {         setTimeout(() => {             //請(qǐng)求成功的時(shí)候調(diào)用resolve             resolve('22222')             //請(qǐng)求失敗的時(shí)候調(diào)用reject             reject('error message')         }, 1000)     }).then((data) => { //請(qǐng)求成功處理函數(shù)         console.log(data)     }).catch((err) => { //請(qǐng)求失敗處理函數(shù)         console.log(err)     })
登錄后復(fù)制

2.確定狀態(tài)

1、在未決狀態(tài)的處理函數(shù)中 如果發(fā)生未捕獲的錯(cuò)誤呀 那么狀態(tài)就會(huì)有pending 直接變成 rejected狀態(tài) 并且可以被catach捕獲

var pro = new Promise((resolve, reject) => {             throw new Error("123");              // try{             //     throw new Error("123");              // } catch(e) {}              resolve(12);             reject(34);         })          // pro.then(data => {         //     console.log(data);         // }, err => {         //     console.log(err);         // })           console.log(pro);                   pro.then(data => {             console.log(data);                      })          pro.catch(data => {             console.log(data);                      })
登錄后復(fù)制

3.async和await

1.使用Promise:

const makeRequest = () =>         getJSON().then(data => {             console.log(data)             return "done"         })      makeRequest()
登錄后復(fù)制

2.使用Async:

async和await 是ES7提出來(lái)的
async作用:簡(jiǎn)化函數(shù)返回值中promise對(duì)象的創(chuàng)建
一般情況下, async寫(xiě)在函數(shù)的最前面,被修飾的函數(shù)的返回值 ,一定是promise對(duì)象。只有在某些特殊情況下 才會(huì)手動(dòng)返回一個(gè)promise對(duì)象。

作用:和promise一樣 解決異步問(wèn)題 但是他的好處在于 讓異步代碼和同步的一樣!!
注意點(diǎn) : 同步方法我們拿到結(jié)果 是通過(guò)返回值,異步方法拿到結(jié)果,是靠回調(diào)函數(shù)。

async 和await使用的基本語(yǔ)法 :

  • 就是在普通函數(shù)前面加一個(gè)async 調(diào)用跟普通函數(shù)一樣

  • async出現(xiàn)使用 一般都要和await配合使用

  • await后面接的就是一個(gè)promise對(duì)象 await一定是在異步函數(shù)中使用的

const makeRequest = async () => {  // await getJSON()表示console.log會(huì)等到getJSON的promise成功reosolve之后再執(zhí)行。         console.log(await getJSON)         return "done"     }      makeRequest()
登錄后復(fù)制

3.區(qū)別

1.函數(shù)前面多了一個(gè)aync關(guān)鍵字。await關(guān)鍵字只能用在aync定義的函數(shù)內(nèi)。async函數(shù)會(huì)隱式地返回一個(gè)promise,該promise的reosolve值就是函數(shù)return的值。(示例中reosolve值就是字符串”done”)
2.我們不能在最外層代碼中使用await,因?yàn)椴辉赼sync函數(shù)內(nèi)。

四.promise方法

var r1 = new Promise((resolve,reject) => {             setTimeout(function(){                 resolve("我是第一個(gè)請(qǐng)求");             },1000)         })         var r2 = new Promise((resolve,reject) => {             setTimeout(function(){                 resolve("我是第二個(gè)請(qǐng)求");             },3000)         })         var r3 = new Promise((resolve,reject) => {             setTimeout(function(){                 resolve("我是第三個(gè)請(qǐng)求");             },4000)         })         var r4 = new Promise((resolve,reject) => {             setTimeout(function(){                 resolve("我是第四個(gè)請(qǐng)求");             },500)         })
登錄后復(fù)制

1.all方法

有時(shí)候我們需要等待兩個(gè)或者多個(gè)請(qǐng)求都成功返回了再進(jìn)行下一步操作,promise 的all方法是等所有的異步請(qǐng)求完成之后在進(jìn)行下一步回調(diào)

Promise.all([r1,r2,r3,r4]).then(data => {             console.log(data);                      })
登錄后復(fù)制

2.race方法

請(qǐng)求同時(shí)發(fā)送出去 誰(shuí)先回來(lái) 就是用誰(shuí)的數(shù)據(jù)。

Promise.race([r1,r2,r3,r4]).then(data => {            console.log(data);                    })
登錄后復(fù)制

五.promise封裝ajax案例

<script>        function toData(obj) {                                // 聲明一個(gè)數(shù)組 來(lái)裝每一組的數(shù)據(jù)                var arr = [];                if(obj !== null) {                    for(var key in obj) {                        let str = key + "=" + obj[key];                        arr.push(str);                    }                    return arr.join("&");                }        }         function ajax(obj) {            return new Promise(function(resolve, reject) {                // 給ajax所需要的參數(shù)設(shè)置默認(rèn)值                obj.type = obj.type || "get";                obj.async = obj.async|| "true";                obj.dataType = obj.dataType || "json";                obj.data = obj.data || null;                 // 開(kāi)始發(fā)送ajax請(qǐng)求                var xhr;                 if(window.XMLHttpRequest) {                    xhr = new XMLHttpRequest();                } else {                    // IE低版本的瀏覽器                    xhr = new ActiveXObject("Microsoft.XMLHttp");                }                 // 判斷是post請(qǐng)求 還是get請(qǐng)求                if(obj.type === "post") {                    xhr.open(obj.type, obj.url, obj.async);                    // 設(shè)置請(qǐng)求頭                    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");                     xhr.send(toData(obj.data));                 } else {                    var url = obj.url + "?" + toData(obj.data);                    xhr.open(obj.type, url, obj.async);                    xhr.send();                }                 // 處理響應(yīng)體                xhr.onreadystatechange = function() {                     if(xhr.readyState == 4) {                        if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) {                            resolve(JSON.parse(xhr.responseText));                         } else {                            reject(xhr.status);                        }                    }                }            })        }         ajax({            url : "./data.php",            data : {                name : "jack",                age : 16            }        }).then(res => {            console.log(res);                    }, err => {            console.log(err);                    })        </script>
登錄后復(fù)制

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
黄频视频在线观看| 国产一区二区三区乱码| 精品视频一区二区在线| 国产精品久久久影院| 999一区二区三区| 免费成人黄色大片| 奇米777四色影视在线看| 中文字幕色网站| 国产又大又长又粗又黄| 五月婷婷丁香色| 精品久久免费观看| 中文字幕第50页| 交换做爰国语对白| 国产欧美自拍视频| 少妇人妻在线视频| 日韩极品视频在线观看| 一女被多男玩喷潮视频| 久久精品视频16| av免费网站观看| xxxx在线免费观看| av在线播放天堂| 五月婷婷六月丁香激情| 日本丰满少妇黄大片在线观看| 亚洲色欲久久久综合网东京热| 精品国偷自产一区二区三区| 在线无限看免费粉色视频| 污视频网址在线观看| 99草草国产熟女视频在线| 国精产品一区一区三区视频| 草草视频在线免费观看| 香港三级日本三级a视频| 国产一二三四五| 中文字幕第三区| 免费国产成人看片在线| 国产奶头好大揉着好爽视频| 熟妇熟女乱妇乱女网站| 国产在线观看欧美| 国产一级免费大片| 欧美一级小视频| 黄色一级在线视频| 超碰在线资源站| 免费裸体美女网站| 艳母动漫在线观看| 色戒在线免费观看| 日日摸日日碰夜夜爽av| 国产一区 在线播放| 国产一伦一伦一伦| 污版视频在线观看| 国产一二三四五| 天天操天天摸天天爽| 精品一区二区三区毛片| 日韩欧美在线播放视频| 国产又大又黄又粗又爽| 中文字幕一区二区三区四区五区人| 国产精品12p| 欧美性久久久久| 国产香蕉一区二区三区| 色综合天天色综合| 国产在线播放观看| 99精品视频网站| 亚洲免费av一区二区三区| 日本福利视频一区| 懂色av粉嫩av蜜臀av| 中文字幕在线观看日| 国产av熟女一区二区三区| 中文字幕55页| 美女黄色片视频| 久久免费视频3| 国产a级片网站| 成人一对一视频| 鲁一鲁一鲁一鲁一色| 久久成人福利视频| 日韩不卡一二区| 一级黄色片国产| 黄色免费网址大全| 99九九99九九九99九他书对| 成年人免费在线播放| 欧美日韩在线中文| 乌克兰美女av| 中文字幕色呦呦| av7777777| 丝袜制服一区二区三区| www.成年人| 超薄肉色丝袜足j调教99| 国产视频在线观看网站| 国产在线青青草| 亚洲黄色小视频在线观看| 日日夜夜精品视频免费观看| 麻豆md0077饥渴少妇| 国内精品视频一区二区三区| 久久国产成人精品国产成人亚洲| 欧美牲交a欧美牲交aⅴ免费真| 一区二区成人网| 免费视频爱爱太爽了| 欧美大尺度做爰床戏| www婷婷av久久久影片| 18禁男女爽爽爽午夜网站免费| 99精品视频国产| 亚洲午夜无码av毛片久久| 特级毛片在线免费观看| 成人黄色一区二区| 国产天堂视频在线观看| 亚洲第一色av| 熟妇人妻无乱码中文字幕真矢织江| 天天操夜夜操很很操| 成年网站在线播放| 精品www久久久久奶水| 99re6这里有精品热视频| 精品国产鲁一鲁一区二区三区| 欧美视频第一区| 男人c女人视频| av不卡在线免费观看| 一区二区三区四区毛片| 人人爽人人爽av| 爱情岛论坛vip永久入口| 向日葵污视频在线观看| 日本 片 成人 在线| 中文字幕成人免费视频| 色免费在线视频| 婷婷激情小说网| 色偷偷中文字幕| 亚洲精品少妇一区二区| 老太脱裤子让老头玩xxxxx| 免费观看美女裸体网站| 99久久国产宗和精品1上映| 精品久久久久久久无码| 亚洲一级片免费观看| 中国女人做爰视频| 久久久999视频| 无需播放器的av| 日韩精品久久一区二区| 亚洲免费av一区二区三区| 国产欧美一区二| 国内性生活视频| www.成人黄色| 欧美一级黄色影院| 国产曰肥老太婆无遮挡| 激情综合网俺也去| 人妻少妇精品久久| 特级丰满少妇一级| 老司机午夜av| 女性女同性aⅴ免费观女性恋| 香蕉视频xxxx| 最近中文字幕一区二区| 18禁免费无码无遮挡不卡网站| 中文字幕免费高清在线| 成人一级片网站| 日本阿v视频在线观看| 亚洲av首页在线| 亚洲天堂网站在线| www.涩涩涩| 亚洲18在线看污www麻豆| 天天操天天爽天天射| 日韩免费高清在线| 美女网站色免费| 天天干在线影院| 色一情一区二区| 婷婷免费在线观看| www.色.com| 久久男人资源站| 夜夜添无码一区二区三区| 最近免费中文字幕中文高清百度| 欧美一区二区三区爽大粗免费| 亚洲美免无码中文字幕在线| 三级网在线观看| 欧美午夜精品理论片| 欧美 日本 亚洲| 免费在线黄网站| 国产二区视频在线| 五月天婷婷在线观看视频| 久艹在线免费观看| 国产精品久久久久久久久电影网| 一本大道东京热无码aⅴ| 日韩小视频网站| 国产精品亚洲二区在线观看| 在线观看免费黄网站| a级网站在线观看| 欧美视频免费看欧美视频| 手机在线看福利| 午夜免费精品视频| 午夜免费看视频| the porn av| 超碰影院在线观看| 日本在线观看a| 九九精品久久久| 日本高清免费观看| 日韩激情视频一区二区| 波多野结衣家庭教师在线播放| 国产日韩第一页| 91丨porny丨探花| xx欧美撒尿嘘撒尿xx| 1024av视频| 欧美成人三级在线视频| 在线成人免费av| 五月婷婷之综合激情| 日韩国产小视频| 欧美日韩福利在线| aaa一级黄色片| 免费在线观看毛片网站| 精品国产鲁一鲁一区二区三区|