怎么在微信小程序利用co對(duì)異步流程進(jìn)行處理-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)怎么在微信小程序利用co對(duì)異步流程進(jìn)行處理,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司主營平?jīng)鼍W(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),平?jīng)鰄5小程序制作搭建,平?jīng)鼍W(wǎng)站營銷推廣歡迎平?jīng)龅鹊貐^(qū)企業(yè)咨詢

co

co是一個(gè)基于ES6 Generator特性實(shí)現(xiàn)的【異步流程同步化】寫法的工具庫。

co需要使用Promise特性,所以,我們先來創(chuàng)建一個(gè)使用Promise來處理的異步方法:

function myAsyncFunc() {
 return new Promise(function (resolve, reject) {
 setTimeout(function () {
 console.log("myAsyncFunction done!");
 resolve({ 
 data: "Hello,World" 
 })
 }, 2000);
 });
}

然后,直接使用這個(gè)方法的話,就會(huì)如下,使用了then/catch的回調(diào)方式來處理調(diào)用結(jié)果和異常處理:

myAsyncFunc().then(function (result) {
 console.log(result.data); //Hello,World
}).catch(function (err) {
 //...
});

而如果是使用co的話,則會(huì)像這樣:

co(function *() {

 try {
 var result = yield myAsyncFunc();
 console.log(result.data); //Hello,World
 } catch(e) {
 }

});

這樣的寫法,是不是就是我們非常熟悉的,比較符合邏輯思維習(xí)慣的同步寫法了?

關(guān)于co的用法,在本文中我就不多展開了,有興趣的朋友可以自行搜索相關(guān)資料。我今天要講的是,如何在小程序環(huán)境下面成功的使用co。

1. 開啟語言轉(zhuǎn)譯選項(xiàng)

由于要使用到ES6的generator,而又要為了兼容性,我們必須對(duì)ES6的語法進(jìn)行降級(jí)轉(zhuǎn)譯,變成ES5。

怎么在微信小程序利用co對(duì)異步流程進(jìn)行處理
開啟語言轉(zhuǎn)譯選項(xiàng)

2. 引入generator支撐庫

經(jīng)過轉(zhuǎn)譯后的代碼,需要依賴一個(gè)regeneratorRuntime,才能支持generator特性。Facebook開源的一個(gè)regenerator就是這樣一個(gè)庫,Github地址:https://github.com/facebook/regenerator/

你可以通過npm來下載這個(gè)regenerator庫:

npm install regenerator

然后將下載文件中名為regenerator-runtime.js的文件拿出來,放到我們的小程序代碼中去。

3.下載co和Promise庫

接著,通過npm下載co庫:

npm install co

將下載文件中名為co.js文件拿出來,放到我們的小程序代碼中去。

因?yàn)樾枰蕾嘝romise,所以我們需要引入一個(gè)Promise實(shí)現(xiàn)庫。在此我們選用一個(gè)小而兼容性好的庫es6-promise。同樣可以通過npm下載:

npm install es6-promise

將es6-promise.js放到我們的小程序代碼中。

4.引入小程序代碼中

使用前,將這些庫正確的引入我們的代碼:

const Promise = global.Promise = require('../../libs/es6-promise')
const regeneratorRuntime = global.regeneratorRuntime = require('../../libs/regenerator-runtime')
const co = require('../../libs/co')

以上就是怎么在微信小程序利用co對(duì)異步流程進(jìn)行處理,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站bm7419.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:怎么在微信小程序利用co對(duì)異步流程進(jìn)行處理-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://bm7419.com/article36/hdcpg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、品牌網(wǎng)站制作網(wǎng)站營銷、做網(wǎng)站、面包屑導(dǎo)航微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站