微信小程序设置请求超时wx.request等,简单易懂!
微信小程序设置请求超时wx.request等
一、用到的方法:
个人理解,比较粗糙 看不懂可以百度一下具体用法
new Promise:new了一个函数或者方法,可以被Promise.race等方法调用
resolve:返回本方法成功要返回的数据 相当于success return
reject:返回本方法失败要返回的数据 相当于fail return 具体用法下面有
Promise.race:Promise.race([a,b]); race是Promise的一个方法可以调用 意为竞速,a和b是两个new的Promise方法,这个数组中可以存多个Promise方法,执行之后a和b会同时执行 哪个先执行完就运行哪个 另一个就停止运行
以上都为Promise相关
setTimeout:设置超时 如果设置5秒 执行开始 等待(延迟)5秒后再执行其中的方法
就相当于a封装了一个request请求,b为5秒超时时间,如果a在5秒内未完成b就会执行 同时a会停止
二、具体实现
先来两个简单的 先试试 可以执行 看不懂可以看下面有具体解释过的
stop:function(){let a = new Promise((resolve,reject) => {if (true == false) {setTimeout(resolve,3000,'成功')}else{setTimeout(resolve,1000,'失败')}});let b = new Promise((resolve,reject)=>{setTimeout(reject,2000,'页面丢失了,请重新进入')})Promise.race([a,b]).then(success=>{console.log(success);//返回第二个resolve '失败'},err=>{console.log(err);})}
let p1 = new Promise((resolve, reject) => {setTimeout(resolve, 1000, 'one');
});
let p2 = new Promise((resolve, reject) => {setTimeout(resolve, 2000, 'two');
});
Promise.race([p1, p2]).then((value) => {console.log(value);//这里p1延时1s 所以肯定是one
});
具体的 顺便加了个wx.request 很多行有解释
stop:function(){//从这里开始 是new了一个a方法let a = new Promise((resolve,reject) => {console.log("进方法了...... 从这里开始就是要正常执行的代码 直接放进去就行")console.log("第一个方法,下面示例wx.request")wx.request({url: url,method: method,data: data,header: {...省略},dataType: 'json',success: function (res) {//这里就相当于return了 因为Promise是new的一个方法 需要返回//具体用resolve还是reject 其实都一样的 自己能判断出来执行开始之后要怎么写就可以了resolve("操作成功");},fail: function (err) {resolve("操作失败");}})});//a方法结束//b方法很简单 设置一个setTimeOut let b = new Promise((resolve,reject)=>{//reject:返回失败 5000:延迟5秒执行 '页面丢失了,请重新进入':返回的数据setTimeout(reject,5000,'页面丢失了,请重新进入')})//b方法结束//这里调用a,b俩方法 上面的new a和b只是创建了 此处和上面并没有执行 //这里可以简写 a,b也可以有c(多个函数同时运行Promise.race([a,b,c]),不管有几个,只执行最快的一个)let aa = Promise.race([a,b]);//这里开始执行 .then就是开始执行aa aa为Promise.race([a,b]) 把a和b放一起运行了aa.then(//这里返回resolve就进入success 可以根据返回值判断执行完正常的代码如何继续下一步success=>{//这里可以加一个判断//if(success == '操作成功'){...}else if(success == '操作失败'){...}console.log(success);},//这里返回reject就进入err 可以根据返回值判断执行完正常的代码如何继续下一步err=>{console.log(err);//一个普通的wx.showModal 微信api有wx.showModal({title: '报错了',//这个err就是上面返回的字符串 '页面丢失了,请重新进入'content: err,showCancel: false,confirmText: '确定',//这个是wx.showModal弹框 点了确定之后执行的操作 示例跳别的页面success:(res) => {//一个普通的跳转页面操作wx.reLaunch({url: '/pages/aaa/aaa',})}})})},
原创作者:h仔
参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise/race
微信小程序设置请求超时wx.request等,简单易懂!相关推荐
- 微信小程序数据交互(wx.request)
对 wx.request 的理解 微信小程序的设计模式基本依照于前端设计 html+css+js,关于与后端数据的交互,小程序不能像传统后端开发语言一样,能直接连接操作数据库.小程序更多的是像前端界面 ...
- 微信小程序设置请求头header 参数 token 验证
小程序开发中需要在请求头header中用到 token 验证 header:{ 'content-type': 'application/x-www-form-urlencoded', 'access ...
- 微信小程序 this和that详解及简单实例
微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...
- 微信小程序网络请求 - 设置合法域名
微信小程序设置网络请求 官方文档 为什么要设置合法域名呢 ? 每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信.包括普通 HTTPS 请求(wx.request).上传文件(w ...
- 微信小程序 打开小程序设置页(wx.openSetting)接口调整官方
前言 跳转微信小程序设置页面 开发者可以通过 wx.openSetting 接口来打开小程序设置界面并返回用户的设置结果.在原来的 wx.openSetting 接口中,我们允许开发者直接调用此接口, ...
- mpvue微信小程序http请求-fly.js
mpvue微信小程序http请求-fly.js fly.js是什么? 一个支持所有JavaScript运行环境的基于Promise的.支持请求转发.强大的http请求库.可以让您在多个端上尽可能大限度 ...
- 微信小程序如何请求数据
微信小程序呢不存在ajax,那么它是如何实现数据请求功能的呢? 在微信官方文档中提供了API的调用wx.request()来请求数据 在数据请求之前,我们需要把微信小程序数据请求的坑过一遍 1:微信小 ...
- 5、微信小程序-网络请求和本地存储
文章目录 前言 一.准备 二.网络请求 1.微信小程序请求网络的方法 2.发送网络请求 3.网络请求的封装 4.网络返回请求数据的处理 三.本地存储 前言 这节我们来看下在微信小程序中如何进行网络请求 ...
- 让微信小程序每次请求的时候不改变session_id的方法
让微信小程序每次请求的时候不改变session_id的方法 每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得 ...
最新文章
- 8080端口被占用的解决方案(其它端口同理)
- python恶搞表情包-Python自动生成表情包,python在手,从此斗图无敌手
- (chap4 Http状态码) 4XX
- 解决import tensorflow时的报错 Passing (type, 1) or ‘1type‘ as a synonym of type is deprecate
- Oracle 基础 —SQL语句优化的途径
- VRP平台总体介绍及基础配置
- qemu-kvm磁盘读写的缓冲(cache)的五种模式
- Nplayer本地文件拷到服务器,手把手教你简易NAS构建,手机/平板/智能电视随意调取,家庭存储云共享,有了自己的网络云盘后再也不用担心容量不够了!...
- 了解NearPy,进行快速最近邻搜索
- 朴素贝叶斯进行新闻主题分类,有代码和数据,可以跑通
- java socket 回调函数_请问Java网络编程如何在不使用多线程的情况下实现异步返回?...
- java中的static类_再议Java中的static关键字
- 前后端分离前端框架的主要内容是什么?
- 凤凰系统基于android x x86,凤凰系统(Phoenix OS)x86版1.0 beta官方版
- 学习使用php实现公历农历转换的方法代码
- 解决 CDH6.3.1 安装HDFS时出现{{CMF_CONF_DIR}}/redaction-rules.json (No such file or directory)错误
- 网络安全之路:我的系统性渗透测试学习框架
- 做人呢,最重要的就是开心啦~
- 112、Flutter实现图片放大缩小的动画小
- 服务器端口不稳定怎么解决,网络不稳定的原因分析,以及解决方法