微信小程序前端promise封装

Posted dashucoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序前端promise封装相关的知识,希望对你有一定的参考价值。

config.js

const config = 
     base_url_api : "https://douban.uieee.com/v2/movie/",


export config

http.js

import  config  from "../config";
class HTTP 
    requset( url, method = "GET", data =  ) 
        const promise = new Promise((resolve, reject) => 
            wx.request(
                url: config.base_url_api + url,
                data,
                method,
                header: 
                    'Content-Type': 'json'
                ,
                success: res => 
                    //状态码 toString() 转成字符串
                    const statusCode = res.statusCode.toString();

                    if (statusCode.startsWith("2")) 
                        resolve(res.data)
                     else 
                        this._show_error();
                    
                ,
                fail: res => 
                    reject(err);
                    this._show_error();
                
            )
        )
        return promise;
    
    _show_error() 
        wx.showToast(
            title: '网络错误',
            icon: 'none'
        )
    

export  HTTP 

model/movie.js

import HTTP from "../utils/http";
class MovieModel extends HTTP
    getInTheaters()
        return this.requset(
            url:"in_theaters"
        )
    
    getTop250()
        return this.requset(
            url:"top250"
        )
    
    getComingSoon()
        return this.requset(
            url:"coming_soon"
        )
    

export MovieModel;

pages/index/index.js

const app = getApp();
import MovieModel from "../../model/movie";
const movieModel = new MovieModel();
Page(
  onLoad()
    // movieModel.getInTheaters().then(res=>
    //   console.log(res)
    // )
    const inTheaters = movieModel.getInTheaters()
    const top250 = movieModel.getTop250();
    const comingSoon = movieModel.getComingSoon();
    Promise.all([inTheaters,top250,comingSoon]).then(res=>
      let[inTheaters,top250,comingSoon] = res;
      console.log(inTheaters)
    )
  
)

若本号内容有做得不到位的地方(比如:涉及版权或其他问题),请及时联系我们进行整改即可,会在第一时间进行处理。


请点赞!因为你们的赞同/鼓励是我写作的最大动力!

欢迎关注达叔小生的简书!

这是一个有质量,有态度的博客

技术图片

以上是关于微信小程序前端promise封装的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序request请求库封装

微信小程序的动画效果

微信小程序的动画效果

微信小程序网络封装-简单高效

前端微信小程序源码开发大神牛

微信小程序封装Promise