老鐵們,我又滿血複活了,今天我準備來吹一波我對promise,如有錯吳請直接指出,明白了嗎?話不多說開始吧 首先我們需要知道啥叫promise,我問了問大佬,他說這個東西是 非同步操作的同步代碼(but有相容問題). 下麵我來說說我自己對他的理解: 這個小東西吧還是挺可愛的,來,我們瞭解瞭解他 1.它 ...
老鐵們,我又滿血複活了,今天我準備來吹一波我對promise,如有錯吳請直接指出,明白了嗎?話不多說開始吧
首先我們需要知道啥叫promise,我問了問大佬,他說這個東西是 非同步操作的同步代碼(but有相容問題).
下麵我來說說我自己對他的理解:
這個小東西吧還是挺可愛的,來,我們瞭解瞭解他
1.它是一個構造函數,使用的時候需要用new實例化
2.他有一個參數,這個參數是一個回調函數,這個回調函數裡面又有兩個參數,第一個為resolve 第二個為 reject (這裡先放一下,我們來上一段代碼要不然太抽象了)
new Promise(function(resolve,reject) { resolve() }).then(function(){},function(){}) 註釋:當回調函數裡面調用resolve()時,.then會調用第一個函數;當回調函數裡面調用reject()時,.then會調用第二個函數 也可以如下麵這樣寫 new Promise(function(resolve,reject) { resolve() }).then(function(){}).cath(function(){}) 註釋:這種寫法,當回調函數裡面調用resolve()時,.then會執行;當回調函數裡面調用reject()時,.catch會執行 大佬們可能發現了,那我的resolve和reject是形參啊,可不可以用別的名字,當然可以的啦,不過要註意和回調函數內部的調用名字統一起來 3.Promise.all(arr).then(function(){}) arr為數組 Now,我們來說一說Promise的非常有用的方法之一 all方法,這個方法作用:當all裡面數組裡的所有非同步操作都執行完畢後再去執行.then(); 4.Promise.race(arr).then(function(){}) arr為數組 接下來我們來說一說Promise的另一個方法 race方法,這個方法作用:當race裡面數組裡的非同步操作只要有一個執行完畢後就會去執行.then(); 5.我自己體會的作用,如有缺失,請立刻聯繫我,你給我補充,我給你打錢 Promise作用: 1.解決回調地獄(關於這個地獄問題,我會在隨後的隨筆中介紹一下) 2.將Ajax獲取來的數據和業務邏輯分開 2.Promise.all()方法可以解決多個Ajax傳回的信息再次組合進行查詢 告辭,告辭************************************************又在成為最會說相聲的程式員的路上邁出了具有歷史性的一步*******************************************************************