摘要:對象是工作組為異步編程提供的統(tǒng)一接口,是中提供了對的原生支持,就是在未來發(fā)生的事情,使用可以避免回調(diào)函數(shù)的層層嵌套,還提供了規(guī)范更加容易的對異步操作進行控制。是執(zhí)行完之后的回調(diào),可以用方法分別指定和的回調(diào)。
Promise對象是CommonJS工作組為異步編程提供的統(tǒng)一接口,是ECMAScript6中提供了對Promise的原生支持,Promise就是在未來發(fā)生的事情,使用Promise可以避免回調(diào)函數(shù)的層層嵌套,還提供了規(guī)范更加容易的對異步操作進行控制。提供了reject,resolve,then和catch等方法。
使用PromisePromise是ES6之后原生的對象,我們只需要實例化Promise對象就可以直接使用。
實例化Promise:
var promise = new Promise(function (resolve, reject) { console.log("begin do something"); if (Math.random() * 10.0 > 5) { console.log(" run success"); resolve(); } else { console.log(" run failed"); reject(); } });
這里定義了一個回調(diào)方法function(resolve,reject),如果成功了就調(diào)用resolve,失敗了就會調(diào)用reject。
Promise.prototype.then是Promise執(zhí)行完之后的回調(diào),可以用then方法分別指定resolve和reject的回調(diào)。
promise.then(function () { console.log(" resolve from promise"); }, function () { console.log(" reject from promise"); });
執(zhí)行結(jié)果一:
begin do something run success resolve from promise
執(zhí)行結(jié)果二:
begin do something run failed reject from promise使用Promise進行網(wǎng)絡(luò)請求
getRequest = function (url) { var promise = new Promise(function (resolve, reject) { var request = require("request"); request(url, function (error, respones, body) { if (error) { reject(error); return; } if (respones.statusCode == 200) { resolve(body) } else { reject(respones.status); } }); }); return promise; }; getRequest("https://github.com/").then(function (result) { console.log(result); }, function (error) { console.error("error", error); });
使用Promise進行網(wǎng)絡(luò)請求,也可以使用Promise在瀏覽上實現(xiàn)Ajax請求。
代碼地址:https://github.com/jjz/node
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/87710.html
摘要:的翻譯文檔由的維護很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...
摘要:從最開始的到封裝后的都在試圖解決異步編程過程中的問題。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。寫一個符合規(guī)范并可配合使用的寫一個符合規(guī)范并可配合使用的理解的工作原理采用回調(diào)函數(shù)來處理異步編程。 JavaScript怎么使用循環(huán)代替(異步)遞歸 問題描述 在開發(fā)過程中,遇到一個需求:在系統(tǒng)初始化時通過http獲取一個第三方服務(wù)器端的列表,第三方服務(wù)器提供了一個接口,可通過...
摘要:為了降低異步編程的復(fù)雜性,所以。難理解請參考的誤區(qū)以及實踐異步編程的模式異步編程的種方法 異步編程 javascript異步編程, web2.0時代比較熱門的編程方式,我們平時碼的時候也或多或少用到,最典型的就是異步ajax,發(fā)送異步請求,綁定回調(diào)函數(shù),請求響應(yīng)之后調(diào)用指定的回調(diào)函數(shù),沒有阻塞其他代碼的執(zhí)行。還有像setTimeout方法同樣也是異步執(zhí)行回調(diào)的方法。 如果對異步編程...
摘要:從最開始的到封裝后的都在試圖解決異步編程過程中的問題。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。異步編程入門的全稱是前端經(jīng)典面試題從輸入到頁面加載發(fā)生了什么這是一篇開發(fā)的科普類文章,涉及到優(yōu)化等多個方面。 TypeScript 入門教程 從 JavaScript 程序員的角度總結(jié)思考,循序漸進的理解 TypeScript。 網(wǎng)絡(luò)基礎(chǔ)知識之 HTTP 協(xié)議 詳細介紹 HTT...
摘要:調(diào)用棧被清空,消息隊列中并無任務(wù),線程停止,事件循環(huán)結(jié)束。不確定的時間點請求返回,將設(shè)定好的回調(diào)函數(shù)放入消息隊列。調(diào)用棧執(zhí)行完畢執(zhí)行消息隊列任務(wù)。請求并發(fā)回調(diào)函數(shù)執(zhí)行順序無法確定。 異步編程 JavaScript中異步編程問題可以說是基礎(chǔ)中的重點,也是比較難理解的地方。首先要弄懂的是什么叫異步? 我們的代碼在執(zhí)行的時候是從上到下按順序執(zhí)行,一段代碼執(zhí)行了之后才會執(zhí)行下一段代碼,這種方式...
摘要:異步問題回調(diào)地獄首先,我們來看下異步編程中最常見的一種問題,便是回調(diào)地獄。同時使用也是異步編程最基礎(chǔ)和核心的一種解決思路?;?,目前也被廣泛運用,其是異步編程的一種解決方案,比傳統(tǒng)的回調(diào)函數(shù)解決方案更合理和強大。 關(guān)于 微信公眾號:前端呼啦圈(Love-FED) 我的博客:勞卜的博客 知乎專欄:前端呼啦圈 前言 在實際編碼中,我們經(jīng)常會遇到Javascript代碼異步執(zhí)行的場景...
閱讀 3565·2021-09-24 09:48
閱讀 1087·2021-09-10 10:51
閱讀 3268·2019-08-30 13:03
閱讀 3315·2019-08-30 12:51
閱讀 1388·2019-08-30 11:22
閱讀 1052·2019-08-29 18:38
閱讀 2036·2019-08-29 16:41
閱讀 3184·2019-08-29 15:32