WeChat applet front-end promise encapsulation

WeChat applet front-end promise encapsulation

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)
    })
  }
}) 

If the content of this number is not in place (for example, copyright or other issues are involved), please contact us in time for rectification, and we will deal with it as soon as possible.

Please like it! Because your approval/encouragement is the biggest motivation for my writing!

Welcome to follow Dashu Xiaosheng s short book!

This is a blog with quality and attitude