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

站長資訊網
最全最豐富的資訊網站

promise是es6的嗎

是的。promise是ECMAScript 6新增的引用類型,表示一個異步操作的最終完成或者失敗。promise是解決異步編程調用代碼邏輯編寫過于復雜的問題的,當網絡請求非常復雜時,就會出現回調地獄,這樣如果將這些代碼寫在一起就會看起來很復雜,且不利于閱讀,如果用promise的話就會讓代碼看起來更加美觀優雅。

promise是es6的嗎

前端(vue)入門到精通課程:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調試工具:點擊使用

本教程操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

ECMAScript 6 增加了對 Promises/A+ 規范的完善支持,即 Promise 類型。一經推出,Promise 就大受歡迎,成為了主導性的異步編程機制。所有現代瀏覽器都支持 ES6 期約,很多其他瀏覽器 API 也以期約為基礎。

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

一、promise函數是干什么的

promise函數是解決異步編程調用代碼邏輯編寫過于復雜的問題的,當網絡請求非常復雜時,就會出現回調地獄,這樣如果將這些代碼寫在一起就會看起來很復雜,且不利于閱讀,如果用promise的話就會讓代碼看起來更加美觀優雅

二、Promise三種狀態

首先, 當我們開發中有異步操作時, 就可以給異步操作包裝一個Promise
異步操作之后會有三種狀態

pending:等待狀態,比如正在進行網絡請求,或者定時器沒有到時間。 fulfill:滿足狀態,當我們主動回調了resolve時,就處于該狀態,并且會回調.then() reject:拒絕狀態,當我們主動回調了reject時,就處于該狀態,并且會回調.catch()
登錄后復制

三、實現

1,then和catch

1.出于未決狀態的函數是同步的 會立即執行
2.then和catch是異步的 就算promise對象里面沒有異步操作 讓then方法或者catch立即執行 那么 這里兩個方法或被加入到事件隊列中等待執行

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

2.確定狀態

1、在未決狀態的處理函數中 如果發生未捕獲的錯誤呀 那么狀態就會有pending 直接變成 rejected狀態 并且可以被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);                      })
登錄后復制

3.async和await

1.使用Promise:

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

2.使用Async:

async和await 是ES7提出來的
async作用:簡化函數返回值中promise對象的創建
一般情況下, async寫在函數的最前面,被修飾的函數的返回值 ,一定是promise對象。只有在某些特殊情況下 才會手動返回一個promise對象。

作用:和promise一樣 解決異步問題 但是他的好處在于 讓異步代碼和同步的一樣!!
注意點 : 同步方法我們拿到結果 是通過返回值,異步方法拿到結果,是靠回調函數。

async 和await使用的基本語法 :

  • 就是在普通函數前面加一個async 調用跟普通函數一樣

  • async出現使用 一般都要和await配合使用

  • await后面接的就是一個promise對象 await一定是在異步函數中使用的

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

3.區別

1.函數前面多了一個aync關鍵字。await關鍵字只能用在aync定義的函數內。async函數會隱式地返回一個promise,該promise的reosolve值就是函數return的值。(示例中reosolve值就是字符串”done”)
2.我們不能在最外層代碼中使用await,因為不在async函數內。

四.promise方法

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

1.all方法

有時候我們需要等待兩個或者多個請求都成功返回了再進行下一步操作,promise 的all方法是等所有的異步請求完成之后在進行下一步回調

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

2.race方法

請求同時發送出去 誰先回來 就是用誰的數據。

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

五.promise封裝ajax案例

<script>        function toData(obj) {                                // 聲明一個數組 來裝每一組的數據                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所需要的參數設置默認值                obj.type = obj.type || "get";                obj.async = obj.async|| "true";                obj.dataType = obj.dataType || "json";                obj.data = obj.data || null;                 // 開始發送ajax請求                var xhr;                 if(window.XMLHttpRequest) {                    xhr = new XMLHttpRequest();                } else {                    // IE低版本的瀏覽器                    xhr = new ActiveXObject("Microsoft.XMLHttp");                }                 // 判斷是post請求 還是get請求                if(obj.type === "post") {                    xhr.open(obj.type, obj.url, obj.async);                    // 設置請求頭                    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();                }                 // 處理響應體                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>
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
五十路熟女丰满大屁股| 女同性恋一区二区| 成年人网站国产| 黄色一级片免费播放| 中文字幕天天干| 亚洲色欲综合一区二区三区| 人妻夜夜添夜夜无码av| 99亚洲国产精品| 裸体裸乳免费看| 一级全黄肉体裸体全过程| 亚洲精品视频三区| 九九热视频免费| 亚洲制服在线观看| 亚洲欧美一区二区三区不卡| 色天使在线观看| 天天干天天操天天玩| 亚洲一级免费观看| 欧美精品 - 色网| 国产成年人在线观看| 国产一区 在线播放| 免费看日b视频| 丰满少妇大力进入| 国模吧无码一区二区三区| 国产主播在线看| 亚洲天堂网一区| 波多野结衣三级在线| 男女私大尺度视频| 亚洲国产精品毛片av不卡在线| 国产97色在线 | 日韩| 高潮一区二区三区| 成人短视频在线观看免费| 高清欧美精品xxxxx| 成人性生生活性生交12| 一级一片免费播放| 精品国产一二三四区| www.这里只有精品| 国产美女作爱全过程免费视频| av免费播放网址| 特级毛片在线免费观看| 欧美丰满熟妇bbbbbb百度| 午夜国产福利在线观看| 免费一级特黄毛片| 免费看涩涩视频| 青青青青草视频| 成人免费黄色av| 99免费视频观看| 国产资源在线免费观看| 伊人影院综合在线| 久久久久久久久久久99| 爱爱爱视频网站| 久久精品视频91| 日韩国产一级片| 青春草在线视频免费观看| 999精品视频在线| a在线视频观看| 日本一二三区视频在线| 国产欧美一区二| 国产小视频精品| 亚洲熟妇av一区二区三区| 免费人成在线观看视频播放| www,av在线| 欧美视频第三页| www在线观看免费| 精品视频在线观看一区二区| 在线播放免费视频| 国产精品自在自线| 日本国产一级片| 色播五月综合网| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 国产毛片久久久久久国产毛片| 国产成年人在线观看| 欧美一级视频在线| caoporm在线视频| 激情文学亚洲色图| 做爰高潮hd色即是空| 咪咪色在线视频| www.色.com| 免费久久久久久| www.av91| 人妻有码中文字幕| 日本888xxxx| 福利片一区二区三区| www.成年人| 97超碰人人爱| 黄色大片在线免费看| 69堂免费视频| 日韩毛片在线免费看| 天堂中文视频在线| 亚洲美女自拍偷拍| 国产精品网站免费| www.日本一区| 亚洲乱码日产精品bd在线观看| 国产综合中文字幕| 午夜视频你懂的| 国产美女视频免费| 免费高清在线观看免费| 不卡的在线视频| 欧美视频在线第一页| 国产精品天天av精麻传媒| 一级日本黄色片| 日本三级免费网站| 中文字幕av导航| 青青视频在线播放| 久久免费视频2| 熟女性饥渴一区二区三区| 做a视频在线观看| 日韩av在线第一页| youjizz.com亚洲| 日韩欧美在线免费观看视频| 亚洲精品在线网址| 久久综合久久色| 成人午夜视频免费观看| www.亚洲高清| 免费av观看网址| 亚洲啊啊啊啊啊| 天堂在线一区二区三区| 大肉大捧一进一出好爽视频| 亚洲综合123| 黄色三级视频在线| 妺妺窝人体色www在线小说| 无码人妻精品一区二区蜜桃网站| www午夜视频| 无遮挡又爽又刺激的视频| 日韩成人三级视频| 久久久精品视频国产| 国产精品久久a| 亚洲欧美激情网| av免费在线播放网站| 我的公把我弄高潮了视频| 99精品视频免费版的特色功能| 天堂av在线网站| 国产第一页视频| av无码精品一区二区三区| 免费av网址在线| 日韩免费毛片视频| 97在线播放视频| 麻豆av免费在线| 日本xxxxxxx免费视频| 最近免费中文字幕中文高清百度| 鲁一鲁一鲁一鲁一色| 欧美a v在线播放| 亚洲国产精品久久久久婷蜜芽| 每日在线更新av| 欧美日韩亚洲一| 久久人妻精品白浆国产| 91视频免费版污| www午夜视频| 欧美亚洲视频一区| av在线免费观看国产| 日本一道本久久| 国产一线二线三线在线观看| 欧美一级黄色影院| 久久精品国产99久久99久久久| 三年中文在线观看免费大全中国| 一二三级黄色片| 菠萝蜜视频在线观看入口| 精品少妇人妻av免费久久洗澡| 男女高潮又爽又黄又无遮挡| 毛片一区二区三区四区| 91丨九色丨蝌蚪| 国产尤物av一区二区三区| 91国视频在线| 色呦色呦色精品| av片在线免费| 一道本视频在线观看| 99中文字幕在线观看| 成年人观看网站| 青娱乐精品在线| aⅴ在线免费观看| 日本高清免费观看| 欧洲黄色一级视频| 日本不卡一区二区三区四区| 青青草国产精品视频| 一个色综合久久| 5月婷婷6月丁香| 欧美日韩在线免费观看视频| 国产视频九色蝌蚪| 成人性做爰片免费视频| 日本老熟妇毛茸茸| 国产免费裸体视频| 成人免费黄色av| 波多野结衣天堂| 国产真人做爰毛片视频直播| 国内自拍视频网| 无码aⅴ精品一区二区三区浪潮 | www.日本一区| 青青青在线视频播放| 超碰在线资源站| 男人天堂成人在线| 午夜精品久久久久久久无码| 国产精品12p| 国产日韩欧美久久| 日韩在线第三页| 日韩av高清在线看片| 日本香蕉视频在线观看| 国产对白在线播放| 天天操天天干天天做| 亚洲综合婷婷久久| 亚洲美女性囗交| 午夜宅男在线视频|