成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

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

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號
99国内精品久久久久久久漫画| 亚洲一区二区三区偷拍女厕| 亚洲AV无码成人精品区日韩| 亚洲国产成人精品福利在线观看| 亚洲色成人www在线观看| 一本加勒比HEZYO无码专区| 在线成人精品国产区免费| AV无码久久久久不卡免费网站| 被猛男伦流澡到高潮H| 国产成人亚洲欧美二区综合| 国精品无码人妻一区二区三区| 久久精品99国产精品蜜桃| 蜜臀AV无码人妻精品| 奇米影视7777狠狠狠狠影视| 睡着了强行挺进岳身体| 亚洲AV永久综合在线观看尤物| 亚洲综合AV色婷婷国产野外| BBW下身丰满18XXXX| 国产SUV精品一区二区五| 黑人男女粗大猛烈进出视频| 麻豆精品一区二正一三区| 人妻无码不卡在线视频| 无码人妻精品一区二区蜜桃网站| 亚洲乱码AV一区二区| 99久久久国产精品消防器材| 国产办公室沙发系列高清| 狠狠干2015最新版| 免费无码的AV片在线观看| 日韩欧美群交P内射捆绑| 亚洲AV无码一区东京热久久| 中文字幕精品亚洲人成在线| 当着老公的面被别人欺负该怎么办 | 成在人线AV无码免费高潮水老板| 国产又黄又大又粗视频| 美人电影在线观看| 熟妇av一区二区| 亚洲欧美综合区丁香五月小说| 99久久免费精品高清特色大片| 国产精品成人嫩草影院| 狂猛欧美激情性XXXX在线观看| 日本最大胆的人文体艺术| 亚洲Av无码成人黄网站在线| 99久久精品国产一区二区| 国产乱人伦AV麻豆网| 免费毛片在线看片免费丝瓜视频| 少女のトゲ在线观看动漫 | 久久久亚洲熟妇熟女ⅩXXXH| 日本中文字幕一区二区高清在线| 亚洲精品无码专区在线在线播放| 白嫩极品女粉嫩喷水视频的| 激情综合婷婷色五月蜜桃| 人妻丰满熟妇AⅤ无码区在线电影 人妻丰满熟妇AⅤ无码区 | 玩弄JAPAN白嫩少妇HD| 在线无码一区二区| 国产精品久久久久久久久久免费 | 无码熟妇人妻Av又大又粗又爽| 中文字幕乱码人妻综合二区三区 | 麻豆精品传媒一二三区| 我半夜摸妺妺的奶C了她动漫 | 美女内射无套日韩免费播放| 午夜丰满少妇性开放视频 | 国产偷久久久精品专区| 欧美XXXX做受欧美88XX| 亚洲AⅤ无码牛牛影视| JAPANESE性公交车| 残忍开嫩苞疼哭了视频| 精品欧美一区二区在线观看| 色综合亚洲一区二区小说性色AⅤ| 一本色道无码不卡在线观看| 国产精品美女一区二区三区| 欧美猛少妇色XXXXⅩ| 亚洲欧美成人一区二区三区| 国产成人精品白浆久久69| 免费啪啪全程无遮挡60分钟| 亚洲AV无码专区亚洲AV手机版| 成人欧美激情亚洲日韩蜜臀 | 国产偷V国产偷V亚洲高清学生| 热爆料-热门吃瓜-黑料不打烊| 亚洲一级 片内射无码| 国产精品VIDEOSSEX久久发布| 欧美人与动性行为视频| 亚洲日韩电影久久| 国产乱理伦片A级在线观看| 人伦亲情父母儿女的句子简短| 一受多攻同做H嗯啊巨肉| 国产真实伦在线观看| 色婷婷粉嫩AV精品综合在线| 97在线 | 亚洲| 久久久久国色AⅤ免费看| 午夜亚洲国产理论片亚洲2020| 被公疯狂进入的美丽人妻| 老师粉嫩小泬喷水视频90| 亚洲丰满熟妇在线观看| 国产精品爱久久久久久久小说| 人妻无码AⅤ中文字幕| 重生之玩遍娱乐圈全文阅读| 久久国产AVJUST麻豆| 亚洲AV成人影视在线观看| 各种少妇BBW撒尿| 欧美综合自拍亚洲综合图片区| 曰本无码人妻丰满熟妇啪| 精产国品一二三产品区别在哪里| 无码人妻精品中文字幕免费东京热| 把腿张开老子臊烂你妙妙| 男生把手放进我内裤揉摸好爽 | 小SAO货CAO得你舒服么| 国产成人AAAAA级毛片| 日本中文字幕乱码免费| T66Y地址一地址二满18周岁| 免费A级毛片无码A∨奶水在线| 亚洲日本中文字幕乱码在线| 好男人官网资源在线观看| 无码任你躁久久久久久| 国产★蜜臀AV无码| 色婷婷成人AV电影| 粗大在少妇体内进进出出| 人成乱码一卡二卡三四卡五卡六卡| 1688.COM成品网站入口| 老师在办公室被躁在线观看| 亚洲综合网站精品一区二区| 色哟哟网站在线观看| 久久永久免费人妻精品我不卡 | 亚洲国产精品无码久久青草| 国产色欲色欲色欲.WWW| 小SAO货大JI巴CAO死你H| 国产成人无码AⅤ片在线观看| 亚洲AV永久无码精品网站| 亚洲精品无码专区久久同性男| 国产精品久久久久久久久鸭| 少妇BBWBBW高潮| 春色校园亚洲愉拍自拍| 日韩AV无码中文字幕| 狠狠干2015最新版| 天天想你在线观看完整版电影| 亚洲无人区码一码二码三码的特点| 蜜芽久久人人超碰爱香蕉| 亚洲日产韩国一二三四区| 精品国产免费第一区二区三区| 亚洲VA国产日韩欧美精品| 精品国产一区二区三区久久| 亚洲人成亚洲人成在线观看| 久久久久久久久久久精品尤物| 在线观看成人网站| 妺妺窝人体色www聚色窝图| 99国精产品灬源码1688钻| 秋霞在线看片无码免费| 丁香花在线电影小说观看| 婷婷五月深深久久精品| 国产在线无码精品电影网| 亚洲另类激情综合偷自拍图片| 久久久久久亚洲精品中文字幕| 正在播放国产对白孕妇作爱| 欧美大屁股XXXⅩOOOO| 精品久久久久久无码人妻| 久久午夜私人影院| 在线看片无码永久AV| 欧美A级毛欧美1级A大片式放| 锕锕锕锕锕WWW湿透了10秒| 日日摸日日踫夜夜爽无码| 国产激情无码一区二区| 亚洲成人无码一区| 乱辈通奷ⅩXXXXHD| 啊轻点灬太粗嗯太深了用力| 天堂8中文在线最新版官网| 国产一卡2卡3卡4卡无卡国色| 亚洲综合成人婷婷五月网址| 女人另类牲交ZOZOZO| 成熟丰满熟妇强av无码区| 希露薇の繁殖计划游戏| 久久久WWW免费人成精品| AV无码人妻一区二区三区牛牛 | 亚洲中文无码线在线观看| 欧美粗大猛烈老熟妇| 国产成人一区二区三区APP| 亚洲精品无码久久久久去Q| 男生把自己的手到女生的QQ里| 东京热无码AV男人的天堂| 亚洲AV无码专区在线电影成人| 麻豆人妻无码性色AV专区| 成 人 免费 黄 色 网站视频| 午夜AV内射一区二区三区红桃视| 久久久AV波多野一区二区| 被按摩的人妻中文字幕| 亚洲 日本 欧美 中文幕| 美乳丰满人妻无码视频| 乖宝真紧H嘶爽老子H| 亚洲色大成网站WWW尤物| 人妻系列无码专区69影院| 国产在线精品一区二区中文 | 亚洲AV成人无码久久WWW| 蜜桃久久国产一区二区| 丰满少妇熟女高潮流白浆| 亚洲无线观看国产高清| 人人妻人人澡AV天堂香蕉| 狠狠色欧美亚洲综合色| ASS鲜嫩鲜嫩PICS| 无码一区二区三区在线| 免费无码观看的AV在线播放| 国产精品高潮AV久久无码| 一本一道VS无码中文字幕|