|
導(dǎo)讀微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開(kāi)應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一... 微信小程序,簡(jiǎn)稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或搜一下即可打開(kāi)應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項(xiàng)門檻非常高的創(chuàng)新,經(jīng)過(guò)將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開(kāi)發(fā)環(huán)境和開(kāi)發(fā)者生態(tài)。 這篇文章主要為大家詳細(xì)介紹了微信小程序異步處理的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下本文實(shí)例為大家分享了微信小程序異步處理的具體方法,供大家參考,具體內(nèi)容如下 直接看問(wèn)題:
然后看打印的結(jié)果:
根據(jù)上面兩圖可以看出,代碼上先執(zhí)行的網(wǎng)絡(luò)請(qǐng)求,再執(zhí)行打印的變量,但是從下面打印的結(jié)果來(lái)看,先出結(jié)果的是執(zhí)行打印變量的函數(shù)(aafn函數(shù)),再打印出網(wǎng)絡(luò)請(qǐng)求success的回調(diào)里返回的數(shù)據(jù)和賦值后的變量的值; 為什么先執(zhí)行的aafn,并且打印的值沒(méi)有賦值上? 因?yàn)閣x.request是一個(gè)異步的請(qǐng)求,所以數(shù)據(jù)請(qǐng)求的同時(shí),可以繼續(xù)向下執(zhí)行函數(shù)。所以這里值還沒(méi)有賦值上就開(kāi)始打印了變量的值; 這種情況,怎么解決呢? 方法一: 嵌套 在wx.request的success回調(diào)里執(zhí)行aafn函數(shù)
然后運(yùn)行結(jié)果
這里就取到值了 但是如果邏輯很復(fù)雜,需要用到很多層異步,就像這樣: asyncFn1(function(){
//...
asyncFn2(function(){
//...
asyncFn3(function(){
//...
asyncFn4(function(){
//...
asyncFn5(function(){
//...
});
});
});
});
});這樣代碼看起來(lái)就很不好看,代碼的可讀性和可維護(hù)性就不好了 那怎么解決這個(gè)問(wèn)題呢?Promise這種概念的產(chǎn)生,很好地解決了這一切,Promise是什么?這里我就不多說(shuō)了有興趣的自己去看一看,Promise介紹鏈接 先看看Promise的方式: function asyncFn1(){
return new Promise(function (resolve, reject) {
//...
})
}
// asyncFn2,3,4,5也實(shí)現(xiàn)成跟asyncFn1一樣的方式...調(diào)用 asyncFn1() .then(asyncFn2) .then(asyncFn3) .then(asyncFn4) .then(asyncFn5); 這樣的話,異步函數(shù)就可以依次執(zhí)行了 微信小程序的異步API怎么支持Promise呢?我們可以一個(gè)一個(gè)的用Promise去包裝這些API,但是這個(gè)還是比較麻煩的。不過(guò),小程序的API的參數(shù)格式都比較統(tǒng)一,只接受一個(gè)object參數(shù),回調(diào)都是在這個(gè)參數(shù)中設(shè)置,所以,這為了統(tǒng)一處理提供了便利,寫一個(gè)工具方法,來(lái)完成這樣的工作 首先需要引用一個(gè)叫bluebird.js的文件; 進(jìn)入bluebird官網(wǎng)下載:
這個(gè)好像是不能下載的,但是你可以點(diǎn)擊進(jìn)入,然后復(fù)制,在小程序里創(chuàng)建一個(gè)js文件,將代碼復(fù)制到這個(gè)js里面,然后引用。 然后再寫一個(gè)JS,里面寫工具方法:
下面是prom.js
然后需要使用的那個(gè)頁(yè)面的js里引入prom.js:
調(diào)用:
打印結(jié)果
這樣就可以了,完結(jié)。 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)! 相關(guān)推薦: 微信小程序中支付后調(diào)用SDK的異步通知及驗(yàn)證處理訂單方法 微信小程序page的生命周期和音頻播放及監(jiān)聽(tīng)的介紹 以上就是關(guān)于微信小程序的異步處理的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章! 小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開(kāi)應(yīng)用。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!