将原生的请求修改为promise的方式

将原生的请求修改为promise的方式

微信小程序 网络发送异步请求获取轮播图数据的 原始代码:

// pages>index>index.js>...

在网络发送异步请求获取轮播图
这种原生请求获取数据的方式没有问题,但需要多次获取数据的时候就会陷入“地狱嵌套”
我们可以通过 es6 的 promise 来进行优化,解决这个问题:

首先,在 资源管理器 中新建一个 request 文件夹
在里面新建 : index.js

// request>index.js>...
export const request=(params)=>{
    
    
  return new Promise((resolve,reject)=>{
    
    
    wx.request({
    
    
     ...params,
     success:(result)=>{
    
    
       resolve(result);
     },
     fail:(err)=>{
    
    
       reject(err);
     }
    });
  })
}
resolve表示成功时候执行的回调函数 ; reject表示失败的时候执行的回调函数
通过调用函数传递参数的形式使用 params

完成了最简单的封装过的微信请求代码,然后回到首页引用代码:

// pages>index>index.js>...
//1 引入 用来发送请求的方法 
import{
    
     request }from "../../request/index.js";
Page({
    
    
  data: {
    
    
    //轮播图数组
    swiperList:[]
  },
 //页面开始加载 就会触发
  onLoad:function(options) {
    
    
    request({
    
    url:"https://api-hmugo-web.itheima.net/api/public/v1/home/swiperdata"})
    .then(result=>{
    
    
      this.setData({
    
    
        swiperList:result.data.message
      })
    })  
  }, 
})
调用自己封装的 request 函数
让url传递到"...params"这个位置,发送请求
保存后 请求成功 就可以触发一个 .then 函数,返回值为 rusult
这时请求成功后的参数 result 就会传递到 .then 里边
最后把数据导入Data

在这里插入图片描述

这时如果有嵌套,就可以在同层级后面加入 .then 函数,优化代码更加直观了。

在这里插入图片描述

开始学小程序,第一次写文章,请多指教呀!

猜你喜欢

转载自blog.csdn.net/m0_53195006/article/details/113360181