ES6,為了解決回調地獄的問題,推出了Promise,字面意思上來看是一個承諾,好多介紹promise的文章都是那種讓人一看就眼暈的,我也是迷茫了好久,今天從我自身來說一說,promise到底是個什麼東西
Promise是個物件(好多人要說,你這不是廢話嗎,js萬物皆對像啊)你說得對。 。 。
promise是一個對象,在對象內部進行呼叫;最常見的寫法:
function GetPromise(someting){ let p = new Promise(resolve,reject) //dosometing resolve(str); reject(str) } return p }
這是最常見的創建使用promise的方式,其調用方法為
GetPromise(somgting).then(function(){}).catch(function(){})
偷了個懶,很多人這個時候要罵娘了,這個then是什麼,catch又是什麼,還有resolve是哪裡來的,reject又是哪來的,我剛接觸的時候,也在想這個問題,上網一搜就沒有好好告訴我的。現在我用最簡單的方法來解釋一下,then是成功回調,catch是異常回調,這樣大家能不能明白。大家寫程式碼一定會有用到判斷的時候例如
if(a=1){ alert('我好帅啊‘) }else{ alert('我怎么这么帅’) }
透過判斷a來決定觸發哪一條語句,promise只不過是這種高階寫法,其內部提供的resolve,綁定為是then,reject綁定catch,我們在實例化promise物件時,在其內部進行判斷,在何時觸發哪一回調,在實際使用時,透過then,catch綁定具體的回調。我們在使用promise來進行非同步操作時,將所有的成功回調都抽象化成resolve,失敗回調抽象化成reject,在實際呼叫透過then,catch'來綁定具體的回呼函數,更優雅,也更抽象,當然Promise有更多方法,但我只是想總結一下入門,再複雜的就不是我講解的了。
#以上是ES6 Promise 簡單介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!