yarn add @evolify/wxtools
ou
npm i @evolify/wxtools
Encapsule wx.request no estilo Promise. Ao usá-lo, basta usar get, post e outros métodos. Suporta adição de interceptadores e pode definir cabeçalho, token, baseUrl, etc. A seguir, tomamos o método post como exemplo.
Importar arquivo js:
import { request as req } from '@evolify/wxtools'
Configure Request, geralmente configurado no miniprograma 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 ;
}
} )
} ,
Definir token após login bem-sucedido
req . token ( token )
Faça uma solicitação de rede
req . post ( '/goods' , data , header )
. then ( res => res . data . data )
. then ( data => {
wx . showToast ( {
title : '创建成功'
} )
} )
Muitas operações na API wx são assíncronas e basicamente os formulários dos parâmetros são semelhantes. Aqui, o Promise é encapsulado e o nome do método e os parâmetros são consistentes com a API oficial, exceto que os retornos de chamada de sucesso e falha não precisam ser passados nos parâmetros. . Tome showToast como exemplo e faça uma comparação simples:
Uso geral:
wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
success : ( ) => {
console . log ( '调用成功' )
} ,
fail : err => {
console . error ( '调用失败' , err )
}
} )
Promessa de uso:
import { Wx } from '@evolify/wxtools'
Wx . showToast ( {
title : '成功' ,
icon : 'success' ,
duration : 2000 ,
} ) . then ( ( ) => {
console . log ( '调用成功' )
} ) . catch ( err => {
console . error ( '调用失败' , err )
} )
O uso de outras APIs é o mesmo. Para métodos, parâmetros e valores de retorno, consulte a documentação oficial. Se houver erros ou itens faltantes, sinta-se à vontade para levantar um 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 => {
}
} )
Em alguns cenários, precisamos definir uma sequência de tarefas atrasadas. Por exemplo, em termos de animação da interface, alguns elementos entram em cena um após o outro com um determinado intervalo. Neste momento, se usarmos setTimeout diretamente, encontraremos o. problema de destruir o inferno. O código é feio e difícil de manter. Uma ferramenta é encapsulada aqui para resolver esses problemas. Para uma introdução detalhada, consulte o artigo: fila de tarefas agendadas js.
import { Schedule } from '@evolify/wxtools'
new Schedule ( ) . task ( task1 )
. delay ( 1000 ) . task ( ( ) => this . setData ( { title : 'Shedule' } ) )
. delay ( 500 ) . task ( task3 )