yarn add @evolify/wxtools
atau
npm i @evolify/wxtools
Enkapsulasi wx.request ke dalam gaya Promise. Saat menggunakannya cukup gunakan get, post dan metode lainnya. Mendukung penambahan interseptor, dan dapat mengatur header, token, baseUrl, dll. secara terpisah. Berikut ini mengambil metode post sebagai contoh.
Impor file js:
import { request as req } from '@evolify/wxtools'
Konfigurasikan Permintaan, biasanya dikonfigurasi dalam program mini metode 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 ;
}
} )
} ,
Tetapkan token setelah login berhasil
req . token ( token )
Buat permintaan jaringan
req . post ( '/goods' , data , header )
. then ( res => res . data . data )
. then ( data => {
wx . showToast ( {
title : '创建成功'
} )
} )
Banyak operasi di wx api yang asynchronous, dan pada dasarnya bentuk parameternya serupa. Di sini, Promise dienkapsulasi, dan nama metode serta parameternya konsisten dengan api resmi, kecuali callback sukses dan gagal tidak perlu diteruskan dalam parameter. . Ambil contoh showToast dan buat perbandingan sederhana:
Penggunaan umum:
wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
success : ( ) => {
console . log ( '调用成功' )
} ,
fail : err => {
console . error ( '调用失败' , err )
}
} )
Janji penggunaan:
import { Wx } from '@evolify/wxtools'
Wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
} ) . then ( ( ) => {
console . log ( '调用成功' )
} ) . catch ( err => {
console . error ( '调用失败' , err )
} )
Penggunaan API lainnya sama. Untuk metode, parameter, dan nilai kembalian, silakan merujuk ke dokumentasi resmi. Jika ada kesalahan atau item yang hilang, silakan ajukan masalahnya.
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 => {
}
} )
Dalam beberapa skenario, kita perlu mendefinisikan urutan tugas yang tertunda. Misalnya, dalam hal animasi antarmuka, beberapa elemen memasuki adegan satu demi satu dengan interval tertentu masalah menghancurkan neraka. Kodenya jelek dan sulit dipertahankan. Sebuah alat diringkas di sini untuk menyelesaikan masalah tersebut. Untuk pengenalan lebih detail, silakan lihat artikel: antrian tugas terjadwal js.
import { Schedule } from '@evolify/wxtools'
new Schedule ( ) . task ( task1 )
. delay ( 1000 ) . task ( ( ) => this . setData ( { title : 'Shedule' } ) )
. delay ( 500 ) . task ( task3 )