微信小程序设置请求超时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等,简单易懂!相关推荐

  1. 微信小程序数据交互(wx.request)

    对 wx.request 的理解 微信小程序的设计模式基本依照于前端设计 html+css+js,关于与后端数据的交互,小程序不能像传统后端开发语言一样,能直接连接操作数据库.小程序更多的是像前端界面 ...

  2. 微信小程序设置请求头header 参数 token 验证

    小程序开发中需要在请求头header中用到 token 验证 header:{ 'content-type': 'application/x-www-form-urlencoded', 'access ...

  3. 微信小程序 this和that详解及简单实例

    微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...

  4. 微信小程序网络请求 - 设置合法域名

    微信小程序设置网络请求 官方文档 为什么要设置合法域名呢 ? 每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信.包括普通 HTTPS 请求(wx.request).上传文件(w ...

  5. 微信小程序 打开小程序设置页(wx.openSetting)接口调整官方

    前言 跳转微信小程序设置页面 开发者可以通过 wx.openSetting 接口来打开小程序设置界面并返回用户的设置结果.在原来的 wx.openSetting 接口中,我们允许开发者直接调用此接口, ...

  6. mpvue微信小程序http请求-fly.js

    mpvue微信小程序http请求-fly.js fly.js是什么? 一个支持所有JavaScript运行环境的基于Promise的.支持请求转发.强大的http请求库.可以让您在多个端上尽可能大限度 ...

  7. 微信小程序如何请求数据

    微信小程序呢不存在ajax,那么它是如何实现数据请求功能的呢? 在微信官方文档中提供了API的调用wx.request()来请求数据 在数据请求之前,我们需要把微信小程序数据请求的坑过一遍 1:微信小 ...

  8. 5、微信小程序-网络请求和本地存储

    文章目录 前言 一.准备 二.网络请求 1.微信小程序请求网络的方法 2.发送网络请求 3.网络请求的封装 4.网络返回请求数据的处理 三.本地存储 前言 这节我们来看下在微信小程序中如何进行网络请求 ...

  9. 让微信小程序每次请求的时候不改变session_id的方法

    让微信小程序每次请求的时候不改变session_id的方法 每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得 ...

最新文章

  1. 8080端口被占用的解决方案(其它端口同理)
  2. python恶搞表情包-Python自动生成表情包,python在手,从此斗图无敌手
  3. (chap4 Http状态码) 4XX
  4. 解决import tensorflow时的报错 Passing (type, 1) or ‘1type‘ as a synonym of type is deprecate
  5. Oracle 基础 —SQL语句优化的途径
  6. VRP平台总体介绍及基础配置
  7. qemu-kvm磁盘读写的缓冲(cache)的五种模式
  8. Nplayer本地文件拷到服务器,手把手教你简易NAS构建,手机/平板/智能电视随意调取,家庭存储云共享,有了自己的网络云盘后再也不用担心容量不够了!...
  9. 了解NearPy,进行快速最近邻搜索
  10. 朴素贝叶斯进行新闻主题分类,有代码和数据,可以跑通
  11. java socket 回调函数_请问Java网络编程如何在不使用多线程的情况下实现异步返回?...
  12. java中的static类_再议Java中的static关键字
  13. 前后端分离前端框架的主要内容是什么?
  14. 凤凰系统基于android x x86,凤凰系统(Phoenix OS)x86版1.0 beta官方版
  15. 学习使用php实现公历农历转换的方法代码
  16. 解决 CDH6.3.1 安装HDFS时出现{{CMF_CONF_DIR}}/redaction-rules.json (No such file or directory)错误
  17. 网络安全之路:我的系统性渗透测试学习框架
  18. 做人呢,最重要的就是开心啦~
  19. 112、Flutter实现图片放大缩小的动画小
  20. 服务器端口不稳定怎么解决,网络不稳定的原因分析,以及解决方法

热门文章

  1. yjk的波库在哪里_盈建科软件
  2. 瑞昱RTL8710、乐鑫ESP8266 物联网之争
  3. 问题 C: 调酒壶里的酸奶 BFS
  4. HBuilder安装SVN插件
  5. cmd启动ie浏览器,cmd命令如何打开浏览器
  6. 华为鸿蒙电脑系统百度分享,实现万物互联 华为鸿蒙操作系统发布
  7. Jasperreport_6.18的吐血记录一之安装软件
  8. 调用WebService 实现在线双向翻译
  9. 红米4X_标注:MAE136_官方线刷包_救砖包_解账户锁
  10. PHP | 入门篇:注释的写法