首页 随心笔记正文

小程序wx.request接口异步问题,在function中代替return返回值的方法

admin 随心笔记 2022-08-09 18:00:01 177 0 收藏文章
以前我正常的写法是这样的

function myddiy(url,data) { 
    wx.request({ 
      url: url,
      data: data,     
      header: { 'content-type': 'application/json' },
      success: function (res) { 
        resolve(res.data)//设置promise成功标志 
      }, fail: function (res) { console.log("at post request: 请求失败") 
      reject(res.data)//设置promise失败标志 
     }); 
  }

调用直接this.myddiy(url,data)就好了,但其实这样是不行的
所以今天也是相当于自己做一个笔记,正确的写法是如下:

function myddiy(url,data) { 
  return new Promise((resolve, reject) => { 
    wx.request({ 
      url: url,
      data: data,     
      header: { 'content-type': 'application/json' },
      success: function (res) { 
        resolve(res.data)//设置promise成功标志 
      }, fail: function (res) { console.log("at post request: 请求失败") 
      reject(res.data)//设置promise失败标志 
    } }) }); 
  }

调用直接用then

        myddiy('url','data').then(res=>{
          console.log(res)
        })

这样异步问题就解决了,只有真正获取到信息后才执行!
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接:www.dnwfb.com/page4_1560_0.html

推荐