亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

JS(六)promise

2024-04-27 15:09:48
字體:
來源:轉載
供稿:網友
javaScript的世界中,所有代碼都是單線程執行的。由于這個“缺陷”,導致Javascript的所有網絡操作,瀏覽器事件,都必須是異步執行。異步執行可以用回調函數實現:function callback() {    console.log('Done');}console.log('before setTimeout()');setTimeout(callback, 1000); // 1秒鐘后調用callback函數console.log('after setTimeout()');觀察上述代碼執行,在Chrome的控制臺輸出可以看到:before setTimeout()after setTimeout()(等待1秒后)Done可見,異步操作會在將來的某個時間點觸發一個函數調用。Ajax就是典型的異步操作。以上一節的代碼為例:request.onreadystatechange = function () {    if (request.readyState === 4) {        if (request.status === 200) {            return success(request.responseText);        } else {            return fail(request.status);        }    }}把回調函數success(request.responseText)和fail(request.status)寫到一個AJAX操作里很正常,但是不好看,而且不利于代碼復用。有沒有更好的寫法?比如寫成這樣:var ajax = ajaxGet('http://...');ajax.ifSuccess(success)    .ifFail(fail);這種鏈式寫法的好處在于,先統一執行AJAX邏輯,不關心如何處理結果,然后,根據結果是成功還是失敗,在將來的某個時候調用success函數或fail函數。古人云:“君子一諾千金”,這種“承諾將來會執行”的對象在JavaScript中稱為xmlHttpRequest();    return new Promise(function (resolve, reject) {        request.onreadystatechange = function () {            if (request.readyState === 4) {                if (request.status === 200) {                    resolve(request.responseText);                } else {                    reject(request.status);                }            }        };        request.open(method, url);        request.send(data);    });}var log = document.getElementById('test-promise-ajax-result');var p = ajax('GET', '/api/categories');p.then(function (text) { // 如果AJAX成功,獲得響應內容    log.innerText = text;}).catch(function (status) { // 如果AJAX失敗,獲得響應代碼    log.innerText = 'ERROR: ' + status;});Result:除了串行執行若干異步任務外,Promise還可以并行執行異步任務。試想一個頁面聊天系統,我們需要從兩個不同的URL分別獲得用戶的個人信息和好友列表,這兩個任務是可以并行執行的,用Promise.all()實現如下:var p1 = new Promise(function (resolve, reject) {    setTimeout(resolve, 500, 'P1');});var p2 = new Promise(function (resolve, reject) {    setTimeout(resolve, 600, 'P2');});// 同時執行p1和p2,并在它們都完成后執行then:Promise.all([p1, p2]).then(function (results) {    console.log(results); // 獲得一個Array: ['P1', 'P2']});有些時候,多個異步任務是為了容錯。比如,同時向兩個URL讀取用戶的個人信息,只需要獲得先返回的結果即可。這種情況下,用Promise.race()實現:var p1 = new Promise(function (resolve, reject) {    setTimeout(resolve, 500, 'P1');});var p2 = new Promise(function (resolve, reject) {    setTimeout(resolve, 600, 'P2');});Promise.race([p1, p2]).then(function (result) {    console.log(result); // 'P1'});由于p1執行較快,Promise的then()將獲得結果'P1'。p2仍在繼續執行,但執行結果將被丟棄。如果我們組合使用Promise,就可以把很多異步任務以并行和串行的方式組合起來執行。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美三级xxx| 91国产视频在线播放| 亚洲欧美精品在线| 亚洲精品国产品国语在线| 欧美成人高清视频| 久久久精品亚洲| 久久精品国产久精国产思思| 国产精品久久久久久久久借妻| 欧美主播福利视频| 51ⅴ精品国产91久久久久久| 成人网在线免费看| 国产精品美女久久久免费| 92国产精品久久久久首页| 38少妇精品导航| 国内精品模特av私拍在线观看| 一本大道久久加勒比香蕉| 亚洲国内精品在线| 中文字幕少妇一区二区三区| 97在线视频免费观看| 精品国产一区二区三区在线观看| 欧美黑人国产人伦爽爽爽| 91国产中文字幕| 国产一区二区三区免费视频| 久久亚洲影音av资源网| 精品久久久久久久久久久久| 久久99亚洲精品| 国产精品久久久999| 欧美人成在线视频| 精品久久香蕉国产线看观看亚洲| 久久久久久久激情视频| 中日韩午夜理伦电影免费| 日韩在线中文字幕| 欧美理论电影在线观看| 国产日韩精品视频| 亚洲人成毛片在线播放| 日韩不卡在线观看| 国产精品日韩欧美| 亚洲国产美女精品久久久久∴| 2019亚洲男人天堂| 久久久久久成人精品| 日本精品在线视频| 久久久精品一区二区三区| 亚洲999一在线观看www| 欧美精品videossex性护士| 在线中文字幕日韩| 在线视频亚洲欧美| 国产欧美精品一区二区| 亚洲成人999| 91精品国产99久久久久久| 久久九九免费视频| 在线不卡国产精品| 欧美亚洲国产视频| 91久久在线观看| 91久久精品一区| 色综合亚洲精品激情狠狠| 97高清免费视频| 亚洲精品久久久久| 国产精品ⅴa在线观看h| 日本午夜在线亚洲.国产| 国产亚洲精品高潮| 国产精品va在线播放| 国产精品美乳在线观看| 国产精品欧美日韩一区二区| 亚洲小视频在线观看| 久久久国产精品免费| 韩国一区二区电影| 久久久国产一区二区| 8090成年在线看片午夜| 亚洲a在线播放| 国产精品白嫩初高中害羞小美女| 日本成人精品在线| 亚洲天堂久久av| 亚洲片国产一区一级在线观看| 亚洲精品大尺度| 永久555www成人免费| 久久精彩免费视频| 亚洲综合一区二区不卡| 亚洲最新视频在线| 日韩国产高清污视频在线观看| 欧美成人精品h版在线观看| 久久免费视频在线观看| 欧美极品美女电影一区| 中文在线不卡视频| 亚洲第一福利网站| 欧美激情视频给我| 日韩国产欧美精品在线| 精品偷拍各种wc美女嘘嘘| 欧美激情一级精品国产| 欧美疯狂性受xxxxx另类| 国产精品日韩欧美大师| 久久影院资源网| 国产精品久久久久99| 综合网日日天干夜夜久久| 日本伊人精品一区二区三区介绍| 国产精品中文字幕久久久| 亚洲综合视频1区| 亚洲自拍小视频免费观看| 91伊人影院在线播放| 久久久久久久av| 国产精品美女免费视频| 亚洲成人1234| 国产精品久久久久77777| 日本一区二区三区四区视频| 亚洲欧美国产日韩中文字幕| 亚洲伊人第一页| 91丝袜美腿美女视频网站| 国产精品亚洲片夜色在线| 狠狠综合久久av一区二区小说| 亚洲在线视频福利| 亚洲大胆人体在线| 亚洲午夜国产成人av电影男同| 亚洲日韩第一页| 搡老女人一区二区三区视频tv| 日本韩国在线不卡| 日韩精品免费一线在线观看| 日韩专区在线播放| 日韩av影院在线观看| 国产成人亚洲综合91精品| 亚洲欧美日韩另类| 国产精品久久婷婷六月丁香| 91精品免费久久久久久久久| 日韩大胆人体377p| 国产精品爽爽爽爽爽爽在线观看| 欧洲永久精品大片ww免费漫画| 久久综合伊人77777| 亚洲激情小视频| 亚洲最大av网| 国产精品中文久久久久久久| 97视频在线观看免费| 国产亚洲a∨片在线观看| 欧美激情亚洲一区| 色综合天天综合网国产成人网| 国产精品自拍偷拍| 一区二区中文字幕| 国内精品久久久| 日本午夜精品理论片a级appf发布| 国产原创欧美精品| 国产亚洲精品久久| 精品国产依人香蕉在线精品| 日韩欧美视频一区二区三区| 国产精品嫩草影院久久久| 欧美在线视频导航| 亚洲天堂久久av| 日韩美女在线看| 亚洲成年网站在线观看| 亚洲激情视频网站| 国产精品久久国产精品99gif| 亚洲欧美激情另类校园| 超碰日本道色综合久久综合| 欧美日韩精品在线播放| 午夜精品久久久久久久男人的天堂| 日本久久久久久久久久久| 日韩一级裸体免费视频| 日韩在线视频一区| www.亚洲免费视频| 亚洲综合精品伊人久久| 欧美日韩国产中文字幕| 国产欧美精品在线播放| 久久久久亚洲精品国产| 久久久国产精品亚洲一区| 日韩经典中文字幕在线观看| 91精品国产乱码久久久久久久久| 中文字幕不卡在线视频极品| 91精品国产电影|