原生小程序使用 flyio,以及拦截器

原生小程序使用 flyio,以及拦截器原生小程序的request请求都是异步请求,在实际项目中使用起来很麻烦,自己封装的方法又不够用,所以想到了flyio,不仅可以实现Promise,而且还可以对所有的页面请求进行拦截,使用起来非常的方便。第一件事首先也是先引用flyio.js了。下载地址:flyio.js在utils目录新建http.jsvarFly=require("flyio.js")//引入路径根据自…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

原生小程序的request请求都是异步请求,在实际项目中使用起来很麻烦,自己封装的方法又不够用,所以想到了flyio,不仅可以实现Promise,而且还可以对所有的页面请求进行拦截,使用起来非常的方便。

第一件事首先也是先引用flyio.js了。

下载地址:flyio.js

在utils目录新建http.js


var Fly = require("flyio.js")//引入路径根据自己放置的目录配置
var fly = new Fly;
fly.interceptors.request.use((request) => {
    request.timeout = 30000;

    if (wx.getStorageSync('token')) {//检查本地缓存是否有token存在没有则重新获取
        request.headers = {//设置请求头
            "content-type": "application/json",
            "cld.stats.page_entry": wx.getStorageSync('scene'),
            "version": app.globalData.version,
            "token": wx.getStorageSync('token')
        }
        return request;
    } else {
        fly.lock();//锁住请求
        return app.Load().then(res => {//重新获取token
            request.timeout = 30000,
                request.headers = {//设置请求头
                    "content-type": "application/json",
                    "cld.stats.page_entry": wx.getStorageSync('scene'),
                    "version": app.globalData.version,
                "token": wx.getStorageSync('token')
                }
            wx.showLoading({
                title: "加载中",
                mask: true,
            });
            fly.unlock();//解锁请求
            return request;//继续之前的请求
        })
    }
})

fly.interceptors.response.use(
    (response) => {
        wx.hideLoading();
        return response;//请求成功之后将返回值返回
    },
    (err) => {
        //请求出错,根据返回状态码判断出错原因
        console.log(err)
        wx.hideLoading();
        if (err.status == 0) {
            return "网络连接异常"
        } else if (err.status == 1) {
            return "网络连接超时"
        } else if (err.status == 401) {
            return "用户未登录"
        } else {
            if (err.response.data.message) {
                return err.response.data.message
            } else {
                return '请求数据失败,请稍后再试'
            }
        };
        // Do something with response error
    }
)
export default {
    fly: fly
}

在其他页面引用

import http from "../../utils/http.js"

使用:

  http.fly.post(baseUrl + 'tt/news', {
            type: 1,
            page: 1
        }).then(res => {
            console.log(res)
        })

具体使用文档:https://wendux.github.io/dist/#/doc/flyio/readme

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/197335.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux通配符的用法_通配符怎么使用

    linux通配符的用法_通配符怎么使用Linux通配符(转)[@more@]通配符1、基本的通配符有哪些?·“?”可替代单个字符。·“*”可替代任意字符。·方括号“[charset]”可替代charset集中的任何单个字符。对最后一条做些解释。[cChH]通配符便可替代c或h字符的大小写形式。通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符包括字符包…

  • fedora14安装教程_fedora安装中文

    fedora14安装教程_fedora安装中文 Dropbox是非常好用到文件备份与同步工具,而且已经从以前的只支持Windows到现在的多系统支持,但是在Fedora下Dropbox只提供对Fedora10的RPM安装包,这让使用最新版本的Fedora的人来说是非常不爽的。今天我们就通过下载Dropbox的源码在Fedora12上通过编译安装来使用。#1首先在Dropbox官方网站上下载程序的源码。源码下载页

  • angular父子组件传值

    angular父子组件传值angular父子组件传值父组件到子组件1.父组件传递数据2.子组件接受数据子组件到父组件1.父组件根据ViewChild获取子组件实例2.子组件通过广播的形式,向子组件发送数据子组件操作父组件接收父组件到子组件1.父组件传递数据在父组件中调用子组件,通过[‘属性值’]进行传值//父组件app-home,子组件app-header//父组件中引用子组件,传递title及msg到子组件<app-header[title]=”title”[msg]=”msg”[run]=”run”[h

  • arcgis python 教程-ArcGIS Python 入门到精通,视频教程下载

    arcgis python 教程-ArcGIS Python 入门到精通,视频教程下载课程介绍:本课程15章42个视频,基于ArcGIS10.2版本,涵盖了如何使用Python开发ArcGIS自定义工具,具体包括:编辑器的使用安装;列表函数使用;汉字乱码处理;游标(cursor)查询、更新和插入;几何图形生成和坐标导出;属性查询和空间查询;字段映射(FieldMappings)和值表(ValueTable)使用;拓扑检查和创建的拓扑处理;文件TXT、XLS和ArcGIS数据转换;使…

  • Windows.h 常用API函数【转】[通俗易懂]

    转自:https://blog.csdn.net/farmwang/article/details/50603608http://www.vbgood.com/api.htmlhttp://hi.baidu.com/3582077/item/9cc3483b581f53c5392ffae3第一个:FindWindow根据窗口类名或窗口标题名来获得窗口的句柄,该函数返回窗口的句柄,这…

  • Redis雪崩效应的解决方案(转)[通俗易懂]

    Redis雪崩效应的解决方案(转)[通俗易懂]1、可以使用分布式锁单机版的话本地锁当突然有大量请求到数据库服务器时候,进行请求限制。使用所的机制,保证只有一个线程(请求)操作。否则进行排队等待(集群分布式锁,单机本地锁)。减少服务器吞吐量,效率低。保证只能有一个线程进入实际上只能有一个请求在执行查询操作也可以在此处进行使用限流的策略~2、缓存标记publicobjectGetProductListNew()…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号