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一区二区
麻豆md0077饥渴少妇| 喜爱夜蒲2在线| 亚洲77777| 亚洲精品久久久中文字幕| 男女视频在线看| 精品亚洲视频在线| 波多野结衣 作品| 精品国产免费av| www.精品在线| 欧美人与动牲交xxxxbbbb| 免费 成 人 黄 色| 国产美女18xxxx免费视频| 国产日韩欧美大片| 毛片一区二区三区四区| 黄色a级三级三级三级| 青青青青草视频| 日本77777| 国自产拍偷拍精品啪啪一区二区| 不卡av免费在线| 三上悠亚久久精品| 国模私拍视频在线观看| 日韩 欧美 视频| 日韩av片网站| 97干在线视频| 成人不卡免费视频| av动漫在线观看| av电影一区二区三区| 国产偷人视频免费| 日本精品免费视频| 午夜在线观看av| 日韩五码在线观看| 日韩中文在线字幕| 亚洲成人天堂网| 日本福利视频在线| 成人短视频在线看| 噼里啪啦国语在线观看免费版高清版| 在线观看18视频网站| 天天干天天爽天天射| 欧美v在线观看| 乱熟女高潮一区二区在线| 黄色国产小视频| 国产精品一区二区免费在线观看| 偷拍盗摄高潮叫床对白清晰| jizz欧美性11| 妞干网在线免费视频| 福利视频免费在线观看| 国产毛片久久久久久| 第四色婷婷基地| 欧美一级裸体视频| 欧美 日韩 国产一区| 欧美精品自拍视频| 人妻少妇精品久久| 成人在线国产视频| 97视频久久久| 成品人视频ww入口| 亚洲 欧美 综合 另类 中字| 9l视频自拍9l视频自拍| 色黄视频免费看| 永久免费看av| 国产女人18毛片| 国产精品国三级国产av| 成人区一区二区| 91免费黄视频| 国产午夜福利100集发布| 欧美人与动牲交xxxxbbbb| 青青在线免费视频| 亚洲一区 在线播放| 国产午夜精品视频一区二区三区| 男人的天堂视频在线| 人妻无码一区二区三区四区| 中文字幕人妻熟女人妻洋洋| 国产手机免费视频| 日韩久久一级片| 欧美第一页浮力影院| 五月天开心婷婷| av一区二区三区免费观看| 日本丰满少妇xxxx| 国产熟人av一二三区| 黄色三级视频在线| 400部精品国偷自产在线观看| 欧美日韩中文字幕在线播放| 黄色网页免费在线观看| 四季av一区二区| 国产精品中文久久久久久| 精品视频在线观看一区二区| 黄色一级视频在线播放| 成人区一区二区| 久久美女福利视频| 色婷婷激情视频| 大西瓜av在线| 九色91popny| 日韩中文字幕亚洲精品欧美| 欧美 日韩精品| 中文字幕中文在线| 青青在线视频免费观看| 国产精品99久久免费黑人人妻| 亚洲第一天堂久久| 国产午夜福利100集发布| 亚洲国产日韩欧美在线观看| 第九区2中文字幕| 成年网站在线播放| www.日本在线播放| 欧美xxxxxbbbbb| 亚洲性生活网站| 免费av手机在线观看| 第一区免费在线观看| 18禁网站免费无遮挡无码中文| 高清av免费看| 99999精品视频| 一二三四中文字幕| 99国产精品久久久久久| 国产二区视频在线播放| 毛片在线视频观看| 亚洲午夜精品一区| 男人女人黄一级| 大陆极品少妇内射aaaaa| 99精品视频网站| 99视频精品免费| 国产视频九色蝌蚪| 国产乱子伦精品视频| 亚洲欧美日本一区二区三区| 99精品免费在线观看| 国产色一区二区三区| 在线观看av的网址| 交换做爰国语对白| 国产精品嫩草影院8vv8| 日本www.色| 国产性生交xxxxx免费| 日韩a在线播放| 日韩中文字幕在线视频观看 | 三级黄色片免费看| 黄色在线视频网| 国产 porn| 妓院一钑片免看黄大片| 久久精品.com| 精品久久久久久久免费人妻| 日本精品一区在线观看| 日本在线观看a| 男女爽爽爽视频| 奇米影音第四色| 中文字幕国产传媒| 日本黄大片一区二区三区| 九九热精品在线播放| 日韩欧美国产片| 国内自拍第二页| 米仓穗香在线观看| 妞干网在线观看视频| 日本xxxxxxxxxx75| 国产淫片av片久久久久久| 污污的网站18| 爱爱爱视频网站| 久青草视频在线播放| 精品人妻人人做人人爽| 青青青免费在线| 冲田杏梨av在线| 欧美少妇一级片| 日韩av中文字幕第一页| 麻豆av免费在线| 久久精品视频在线观看免费| 久久福利一区二区| 1024精品视频| 久久精品国产露脸对白| xxww在线观看| 蜜桃视频成人在线观看| 国产毛片久久久久久国产毛片| 18禁免费无码无遮挡不卡网站| 午夜精品在线免费观看| 亚洲免费av网| 丰满爆乳一区二区三区| 小泽玛利亚视频在线观看| 免费成人深夜夜行网站视频| 国产在线播放观看| 天堂av2020| 看av免费毛片手机播放| 五月花丁香婷婷| 国产精品50p| 先锋影音男人资源| 日本新janpanese乱熟| 波多野结衣 作品| 欧美伦理片在线看| 日韩欧美不卡在线| 日本特级黄色大片| 超碰在线97免费| 少妇av一区二区三区无码| 欧美性受xxxxxx黑人xyx性爽| 老太脱裤子让老头玩xxxxx| 国产美女视频免费看| www一区二区www免费| 日韩人妻一区二区三区蜜桃视频| 日韩福利视频在线| 91免费黄视频| 国产av第一区| 女人高潮一级片| 亚洲福利精品视频| 欧美日韩在线不卡视频| www.夜夜爱| 最新视频 - x88av| 污视频网址在线观看| 久久精品免费网站| 99re在线视频免费观看|