私は最近 WeChat ミニ プログラムを学習しています。この記事では、WeChat ミニ プログラムで非同期処理を処理するために co を使用する方法を主に紹介します。あなたの参考と勉強、それを必要とする友人が来て、以下を見てください。
この記事では主に、co を使用して WeChat ミニ プログラムで非同期プロセスを処理する方法についてのチュートリアルを紹介します。これは、すべての人の参照と学習のために共有されています。必要な場合は、以下の詳細な紹介を参照してください。
co は、ES6 Generator の機能をベースにした【非同期プロセス同期】を記述するためのツールライブラリです。 co は Promise 機能を使用する必要があるため、最初に Promise を使用して処理する非同期メソッドを作成しましょう:
function myAsyncFunc() { return new Promise(function (resolve, reject) { setTimeout(function () { console.log("myAsyncFunction done!"); resolve({ data: "Hello,World" }) }, 2000); }); }
次に、このメソッドを直接使用する場合は、次のようになります。 then/catch コールバック メソッドを使用して処理します。呼び出し結果と例外処理:
myAsyncFunc().then(function (result) { console.log(result.data); //Hello,World }).catch(function (err) { //... });
そして、co を使用すると、次のようになります:
co(function *() { try { var result = yield myAsyncFunc(); console.log(result.data); //Hello,World } catch(e) { } });
この書き込み方法は、私たちがよく知っている同期書き込み方法であり、論理的思考習慣により一致していますか?
co の使用法については、この記事では詳しく説明しませんので、興味のある方はご自身で関連情報を検索してください。今日話したいのは、小規模なプログラム環境で co をうまく使用する方法です。
1. 言語翻訳オプションをオンにします
ES6 ジェネレーターを使用する必要があるため、互換性のために、ES6 構文をダウングレードして ES5 に変換する必要があります。
言語翻訳オプションを有効にする
2. ジェネレーターサポートライブラリを導入します
翻訳されたコードは、ジェネレーター機能をサポートするために regeneratorRuntime に依存する必要があります。 Facebook がオープンソース化したリジェネレーターは、このようなライブラリです。Github アドレス: github.com/facebook/regenerator/ このリジェネレーター ライブラリは、npm を通じてダウンロードできます:
npm install regenerator
次に、regenerator-runtime.js という名前のファイルをダウンロードします。それをアプレットコードに入れます。
3. co ライブラリと Promise ライブラリをダウンロードします
次に、npm 経由で co ライブラリをダウンロードします: npm install co
Promise に依存する必要があるため、Promise 実装ライブラリを導入する必要があります。ここでは、小型で互換性のあるライブラリである es6-promise を選択します。 npm を通じてダウンロードすることもできます:
npm install es6-promise
es6-promise.js をアプレット コードに入れます。
4. ミニプログラムコードに導入します
使用する前に、これらのライブラリをコードに正しく導入してください: 【関連推奨事項】 1. 2. PigCmsマイクロ電子商取引システムオペレーティングバージョン(独立したマイクロストアモール+3レベルの流通システム) 3 WeChat 接続王 v3.4.5 Advanced Business Edition WeChat ルービック キューブ ソース コード 以上がco を使用して非同期プロセスを処理するミニプログラム開発に関するチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。const Promise = global.Promise = require('../../libs/es6-promise')
const regeneratorRuntime = global.regeneratorRuntime = require('../../libs/regenerator-runtime')
const co = require('../../libs/co')