wxtools
1.0.0
yarn add @evolify/wxtools
または
npm i @evolify/wxtools
wx.request を Promise スタイルにカプセル化します。使用する場合は、get、post などのメソッドを使用するだけです。インターセプターの追加をサポートし、ヘッダー、トークン、baseUrl などを個別に設定できます。以下では、post メソッドを例に挙げます。
js ファイルをインポートします。
import { request as req } from '@evolify/wxtools'
リクエストの構成。通常はミニ プログラム App.js>onLaunch メソッドで構成されます。
configReq ( ) {
//配置baseUrl和拦截器,baseUrl例如 /api
req . baseUrl ( config . serverUrl )
. interceptor ( res => {
switch ( res . data . code ) {
case 401 :
wx . showToast ( {
icon : 'loading' ,
title : '重新登录' ,
} )
this . login ( )
return false ;
case 0 :
return true ;
default :
wx . showToast ( {
title : '操作失败' ,
} )
return false ;
}
} )
} ,
ログイン成功後にトークンを設定する
req . token ( token )
ネットワークリクエストを行う
req . post ( '/goods' , data , header )
. then ( res => res . data . data )
. then ( data => {
wx . showToast ( {
title : '创建成功'
} )
} )
wx API の多くの操作は非同期であり、基本的にパラメーターの形式は似ています。ここでは Promise がカプセル化されており、メソッド名とパラメーターは公式 API と一致していますが、成功と失敗のコールバックをパラメーターで渡す必要がない点が異なります。 。 showToast を例として簡単に比較してみます。
一般的な使用法:
wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
success : ( ) => {
console . log ( '调用成功' )
} ,
fail : err => {
console . error ( '调用失败' , err )
}
} )
使用方法の約束:
import { Wx } from '@evolify/wxtools'
Wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
} ) . then ( ( ) => {
console . log ( '调用成功' )
} ) . catch ( err => {
console . error ( '调用失败' , err )
} )
他の API の使用方法も同様です。メソッド、パラメータ、戻り値については、公式ドキュメントを参照してください。間違いや不足がある場合は、お気軽に問題を提起してください。
import { promisify } from '@evolify/wxtools'
function func ( {
param1 ,
param2 ,
success : ( ) => { } ,
fail : ( ) => { }
} ) {
// do something
success ( )
}
const promisifyFunc = params => promisify ( func , params )
// then you can use
promisifyFunc ( data )
. then ( res => {
// on success
} )
. catch ( err => {
// on failed
} )
// instand of
func ( {
... data ,
success : res => {
} ,
fail : res => {
}
} )
一部のシナリオでは、一連の遅延タスクを定義する必要があります。たとえば、インターフェイス アニメーションに関して、いくつかの要素が一定の間隔で次々にシーンに入る場合、setTimeout を直接使用すると、地獄を破壊するという問題 コードは醜くて保守が困難です。このような問題を解決するためのツールがここにカプセル化されています。詳細な導入については、js スケジュールされたタスク キューの記事を参照してください。 使用方法は次のとおりです。
import { Schedule } from '@evolify/wxtools'
new Schedule ( ) . task ( task1 )
. delay ( 1000 ) . task ( ( ) => this . setData ( { title : 'Shedule' } ) )
. delay ( 500 ) . task ( task3 )