小程序request请求回调函数异步的解决办法

小程序的wx.request 方法的不支持 Promise,也就是说我们不能使用promise函数来使我们的请求与回调函数同步, 这就带来了一些问题,比如我们在wx.request请求的success回调函数中写:

success(res){
    this.setData({
        a: res.data.a,
        b: res.data.b,
        c: res.data.c
    })
}

如果网络状态或服务器状态不是太好的话,就可能会报错“设值invalid”,这就是因为我们还没有接受到服务器的返回信息,但是回调函数已经开始执行了,如何让它们强行同步呢?

wx-promise-request 是微信小程序 wx.request 方法的不支持 Promise 和并发数问题的解决方案。

使用它也很简单:

https://github.com/zhengjunxin/wx-promise-request

去这里下载dist目录下的index.js,  重命名为wx-promise-request.js并粘贴到项目的utils目录下, 在需要使用同步request请求的js文件里添加代码

import { request } from '../../utils/wx-promise-request';

即可,如何使用? 例子如下:

import {request} from './wx-promise-request';

request({
  url: 'test.php',
  data: {
    x: '',
    y: '',
  },
  header: {
    'content-type': 'application/json',
  },
})
.then(res => console.log(res))
.catch(error => console.error(error))

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请保持优秀。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值