yarn add @evolify/wxtools
o
npm i @evolify/wxtools
Encapsule wx.request en estilo Promise. Cuando lo use, simplemente use get, post y otros métodos. Admite la adición de interceptores y puede configurar el encabezado, el token, la URL base, etc. por separado. A continuación se toma el método de publicación como ejemplo.
Importar archivo js:
import { request as req } from '@evolify/wxtools'
Configurar solicitud, generalmente configurado en el mini programa App.js>método 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 ;
}
} )
} ,
Establecer token después de iniciar sesión correctamente
req . token ( token )
Hacer una solicitud de red
req . post ( '/goods' , data , header )
. then ( res => res . data . data )
. then ( data => {
wx . showToast ( {
title : '创建成功'
} )
} )
Muchas operaciones en wx api son asincrónicas y, básicamente, las formas de los parámetros son similares. Aquí, Promise está encapsulado y el nombre del método y los parámetros son consistentes con la API oficial, excepto que no es necesario pasar devoluciones de llamada exitosas y fallidas en los parámetros. . Tome showToast como ejemplo y haga una comparación simple:
Uso general:
wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
success : ( ) => {
console . log ( '调用成功' )
} ,
fail : err => {
console . error ( '调用失败' , err )
}
} )
Uso de la promesa:
import { Wx } from '@evolify/wxtools'
Wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
} ) . then ( ( ) => {
console . log ( '调用成功' )
} ) . catch ( err => {
console . error ( '调用失败' , err )
} )
El uso de otras API es el mismo. Para métodos, parámetros y valores de retorno, consulte la documentación oficial. Si hay errores o faltan elementos, no dude en plantear un problema.
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 => {
}
} )
En algunos escenarios, necesitamos definir una secuencia de tareas retrasadas. Por ejemplo, en términos de animación de la interfaz, algunos elementos entran en escena uno tras otro con un cierto intervalo. En este momento, si usamos setTimeout directamente, encontraremos el. El problema de destruir el infierno. El código es feo y difícil de mantener. Aquí se encapsula una herramienta para resolver dichos problemas. Para obtener una introducción detallada, consulte el artículo: cola de tareas programadas js. El uso es el siguiente:
import { Schedule } from '@evolify/wxtools'
new Schedule ( ) . task ( task1 )
. delay ( 1000 ) . task ( ( ) => this . setData ( { title : 'Shedule' } ) )
. delay ( 500 ) . task ( task3 )