本文主要的目的是為大家介紹promise在前端的用法是怎樣的,雖然有不少的解釋文檔,但對(duì)于新手來(lái)說(shuō)并不友好,這里小千就給大家用最簡(jiǎn)單的大白話解釋一下,并配上例子,廢話不多說(shuō)開(kāi)始今天的介紹。
Promise
作用:解決回調(diào)地獄問(wèn)題,將函數(shù)嵌套的代碼方式改為平級(jí)的。
當(dāng)一個(gè)回調(diào)函數(shù)嵌套一個(gè)回調(diào)函數(shù)的時(shí)候,就會(huì)出現(xiàn)一個(gè)嵌套結(jié)構(gòu),當(dāng)嵌套的多了就會(huì)出現(xiàn)回調(diào)地獄的情況。
為了能更加清晰的體會(huì)promise,我們需要先觀察一段代碼。
web前端培訓(xùn)" />
代碼段有四個(gè)函數(shù),f1,f2,f3,f4均為函數(shù),且后一個(gè)函數(shù)作為前一個(gè)函數(shù)的參數(shù),然后進(jìn)行嵌套調(diào)用。最終從調(diào)用的語(yǔ)法來(lái)看,代碼十分復(fù)雜,我們把回調(diào)函數(shù)這樣調(diào)用稱為回調(diào)地獄。
Pomise的作用就是將嵌套的調(diào)用方式改為平級(jí)的。也就是說(shuō)從調(diào)用的結(jié)果上來(lái)看,最終本質(zhì)上是沒(méi)有任何區(qū)別,Pormise只是改變了語(yǔ)法的書(shū)寫(xiě)規(guī)則。這就是Pomise的基本使用方法。
Promise的語(yǔ)法規(guī)則如下:
這里promise對(duì)象可以將以前通過(guò)形參傳遞的回調(diào)函數(shù),用then方法來(lái)進(jìn)行傳遞。其實(shí)promise主要處理的是異步操作,如常見(jiàn)的如ajax請(qǐng)求。我們的每一個(gè)異步事件,在執(zhí)行的時(shí)候,都會(huì)有三種狀態(tài),執(zhí)行中,成功,失敗。這也就解釋了為什么then方法為什么會(huì)有兩個(gè)參數(shù),參數(shù)1代表成功時(shí)執(zhí)行的回調(diào)函數(shù),參數(shù)2代表失敗時(shí)的執(zhí)行狀態(tài)。
所以上述函數(shù)嵌套調(diào)用的代碼可以修改為:
這樣實(shí)現(xiàn)的功能和上述代碼的功能是完全一樣的,但是解決了函數(shù)嵌套調(diào)用的麻煩。
結(jié)論:Pomise的作用就是將嵌套的調(diào)用方式改為平級(jí)的,用于處理異步操作。