1、最基本的功能:
function Promise(fn){ this.arr = []; this.then = function(thParam){ thParam(this.arr); //return this; }; var that = this; function resolve(parm){ that.arr.push(parm); console.log(parm) } fn(resolve); } var p1 = new Promise(function(resolve){ resolve("參數(shù)給then"); }); p1.then(function(response){ console.log(response) });
2、鏈?zhǔn)秸{(diào)用
function Promise(fn){ this.arr = []; this.then = function(paramFun){ var thenParam = paramFun(this.arr[0]); this.arr.splice(0,1,thenParam); return this; }; var that = this; function resolve(parm){ that.arr.push(parm); console.log(parm) } fn(resolve); } var p1 = new Promise(function(resolve){ resolve("參數(shù)給then"); }); p1.then(function(response){ console.log(response) //參數(shù)給then return 1; }).then(function(response){ console.log(response) //1 return 2; }).then(function(response){ console.log(response) //2 });
參考資料:手寫一個(gè)Promise
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105665.html
摘要:近幾年隨著開發(fā)模式的逐漸成熟,規(guī)范順勢而生,其中就包括提出了規(guī)范,完全改變了異步編程的寫法,讓異步編程變得十分的易于理解。最后,是如此的優(yōu)雅但也只是解決了回調(diào)的深層嵌套的問題,真正簡化異步編程的還是,在端,建議考慮。 本篇,簡單實(shí)現(xiàn)一個(gè)promise,主要普及promise的用法。 一直以來,JavaScript處理異步都是以callback的方式,在前端開發(fā)領(lǐng)域callback機(jī)制...
摘要:簡單實(shí)現(xiàn)前言你可能知道,的任務(wù)執(zhí)行的模式有兩種同步和異步。你已經(jīng)實(shí)現(xiàn)了方法方法是一個(gè)很好用的方法。感興趣的朋友可以自行去研究哈附上代碼完整的實(shí)現(xiàn)個(gè)人博客鏈接 Promise 簡單實(shí)現(xiàn) 前言 你可能知道,javascript 的任務(wù)執(zhí)行的模式有兩種:同步和異步。 異步模式非常重要,在瀏覽器端,耗時(shí)很長的操作(例如 ajax 請求)都應(yīng)該異步執(zhí)行,避免瀏覽器失去響應(yīng)。 在異步模式編程中,我...
摘要:實(shí)現(xiàn)的一個(gè)簡單的如果有錯(cuò)誤的地方,希望大家能夠不吝賜教僅實(shí)現(xiàn)及方法最下方有完整代碼開始一個(gè)對象接收的是一個(gè)這個(gè)接收兩個(gè)參數(shù)當(dāng)我們在內(nèi)執(zhí)行或的時(shí)候,就會(huì)調(diào)用內(nèi)定義的和函數(shù)然后,和函數(shù)會(huì)改變的狀態(tài)所以它應(yīng)該是像下面這樣的保存值記錄狀態(tài)為,為,為 實(shí)現(xiàn)的一個(gè)簡單的ES6 Promise(如果有錯(cuò)誤的地方,希望大家能夠不吝賜教) 僅實(shí)現(xiàn)Promise及.then方法最下方有完整代碼 開始 一個(gè)...
摘要:在和方法執(zhí)行的時(shí)候訂閱事件,將自己的回調(diào)函數(shù)綁定到事件上,屬性是發(fā)布者,一旦它的值發(fā)生改變就發(fā)布事件,執(zhí)行回調(diào)函數(shù)。實(shí)現(xiàn)和方法的回調(diào)函數(shù)都是,當(dāng)滿足條件對象狀態(tài)改變時(shí),這些回調(diào)會(huì)被放入隊(duì)列。所以我需要在某個(gè)變?yōu)闀r(shí),刪除它們綁定的回調(diào)函數(shù)。 前言 按照文檔說明簡單地實(shí)現(xiàn) ES6 Promise的各個(gè)方法并不難,但是Promise的一些特殊需求實(shí)現(xiàn)起來并不簡單,我首先提出一些不好實(shí)現(xiàn)或者容...
摘要:近幾年隨著開發(fā)模式的逐漸成熟,規(guī)范順勢而生,其中就包括提出了規(guī)范,完全改變了異步編程的寫法,讓異步編程變得十分的易于理解。最后,是如此的優(yōu)雅但也只是解決了回調(diào)的深層嵌套的問題,真正簡化異步編程的還是,在端,建議考慮。 前段時(shí)間頻頻看到Promise這個(gè)詞,今天發(fā)現(xiàn)騰訊AlloyTeam寫得這篇很贊,遂轉(zhuǎn)之。 原文鏈接 本篇,主要普及promise的用法。 一直以來,JavaScrip...
摘要:為了降低異步編程的復(fù)雜性,所以。難理解請參考的誤區(qū)以及實(shí)踐異步編程的模式異步編程的種方法 異步編程 javascript異步編程, web2.0時(shí)代比較熱門的編程方式,我們平時(shí)碼的時(shí)候也或多或少用到,最典型的就是異步ajax,發(fā)送異步請求,綁定回調(diào)函數(shù),請求響應(yīng)之后調(diào)用指定的回調(diào)函數(shù),沒有阻塞其他代碼的執(zhí)行。還有像setTimeout方法同樣也是異步執(zhí)行回調(diào)的方法。 如果對異步編程...
閱讀 2276·2021-09-30 09:48
閱讀 3650·2021-09-24 10:27
閱讀 1806·2021-09-22 15:32
閱讀 2036·2021-08-09 13:44
閱讀 3587·2019-08-30 15:55
閱讀 1058·2019-08-29 17:12
閱讀 2020·2019-08-29 17:05
閱讀 2931·2019-08-29 13:43