小程序体验版上/真机上报错:errMsg: "hideLoading:fail:toast can't be found" ?模拟器上却看不到,

  • wx.showLoading 和 wx.showToast 同时只能显示一个;
  • wx.showLoading 应与 wx.hideLoading 配对使用;
  • 把请求接口统一封装,开始请求接口时showLoading,请求接口后hideLoading
  • 一个页面同时请求多个接口,由于请求是异步的,很有可能上一个开启了showLoading还没请求完成下一个有开始请求了,这个时候的showLoading与hideLoading就没有对应了。

一、错误代码示例和解决方法

import api from'./api'
var host = 'http://127.0.0.1::5500/';/*** POST请求,* URL:接口* postData:参数,json类型* doSuccess:成功的回调函数* doFail:失败的回调函数*/
//10016:token为空,10008:token无效,20037:集合为空
function request(url, postData) {postData.token = wx.getStorageSync("token");//相当于openidwx.showLoading({ title: '加载中...', mask: true });return new Promise((resolve, reject)=>{    wx.request({//项目的真正接口,通过字符串拼接方式实现url: url,header: {"content-type": "application/json;charset=UTF-8"},data: postData,method: 'POST',dataType: "json",success: function (res) {//参数值为res.data,直接将返回的数据传入if(res.data.code === "0000"){resolve(res.data);} else {wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 });}        },fail: function (err) {reject(err)},complete: function(res){wx.hideLoading();}})})
}/*** module.exports用来导出代码* js文件中通过var call = require("../util/request.js") 加载* 在引入引入文件的时候" "里面的内容通过../../../这种类型,小程序的编译器会自动提示,因为你可能* 项目目录不止一级,不同的js文件对应的工具类的位置不一样* 使用: call.post("接口地址", {参数}, function(res){})*/
module.exports.post = request;
module.exports.get = getData;

这是我第一次封装的代码,看逻辑没什么问题,但是真机调试第一次打开总是报错。经过测试发现:

  • success 比 complete 先运行。因此上面代码 wx.showLoading 还没闭合时,wx.showToast 就开始显示了。
  • errMsg: "hideLoading:fail:toast can't be found" 不是 wx.request 请求方法中的 fail 和 complete 发出来的错误信息,而是 wx.hideLoading 发出来的错误信息。

结合上面的发现,重新改了一次请求接口的封装过程:

import api from'./api'
var host = 'http://127.0.0.1:5500/';//10016:token为空,10008:token无效,20037:集合为空
function request(url, postData) {  postData.token = wx.getStorageSync("token");//相当于openidwx.showLoading({ title: '加载中...', mask: true });return new Promise((resolve, reject)=>{    wx.request({//项目的真正接口,通过字符串拼接方式实现url: url,header: { "content-type": "application/json;charset=UTF-8" },data: postData,method: 'POST',dataType: "json",success: function (res) {//参数值为res.data,直接将返回的数据传入if(res.data.code === "0000"){resolve(res.data);        } else {// wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 });}        },fail: function (err) {reject(err)},complete: function(res){wx.hideLoading({complete: function(hide){console.log(hide); //可以看到错误信息被打印出来了if(res.data.code === "0000"){} else {wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 });}}});}})})
}module.exports.post = request;

二、module.exports

顺便一提上面 module.exports.post = 函数名/变量名module.exports = {} 的区别:

(1)上面我使用的是 module.exports.自定义名称A = 函数名 这种方法,在调用时,

//引用文件路径:在Page()的最外层
import 自定义文件名 from '文件地址';//使用:与函数名无关了
自定义文件名.自定义名称A();

module.exports.自定义名称A = 函数名 中,“自定义名称A”相当于给函数名重新命名,所以自定义名称A 经常都是与函数名同名。

(2) module.exports = { post } ,这种写法相当于:module.exports = { post: post },与上面写法在调用是的区别在于:

import {方法名1, 方法名2} from '文件地址';//使用:直接使用
方法名1();

参考:

1. 小程序showLoading:网络请求前显示“加载中...”,请求完成时关闭加载中

2. 关于微信小程序VM22:2 (in promise) MiniProgramError {“errMsg“:“hideLoading:fail:toast can‘t be found“

3. 小程序真机调试报错: errMsg“:“hideLoading:fail:toast can‘t be found“?

小程序 报错errMsg: “hideLoading:fail:toast can‘t be found“ ?相关推荐

  1. 小程序报错errMsg:hideLoading:fail:toast can't be found和hideToast:fail:toast can't be found?解决方案

    小程序报错 errMsg":"hideLoading:fail:toast can't be found"和hideToast:fail:toast can't be f ...

  2. 微信小程序报错 {“errMsg“: “hideLoading:fail toast can‘t be found“}

    {"errMsg": "hideLoading:fail toast can't be found"} 原因 wx.showToast()  和  wx.sho ...

  3. 微信小程序报错{errMsg:hideLoading:fail:toast can't be found}

    最近在调试微信小程序时,发现有报错问题,虽然没影响使用,但是看着不舒服啊,还是着手解决吧,先看一下报错 从论坛看了看说是最新版本的微信7.0.13测试版会出现,但是还得找找看看是不是这样 我们都知道w ...

  4. 微信小程序报错{“errMsg“:“hideLoading:fail:toast can‘t be found“}

    wx.showToast() 和 wx.showLoading() 都是 wx.hideLoading()来隐藏的 所以一起用的话就会报错 解决办法: 1.不要一起用 2. wx.hideLoadin ...

  5. 微信小程序体验版ios白屏 安卓报错 {“errMsg“:“hideLoading:fail:toast can‘t be found“}

    在编辑器中显示正常 然后使用ios真机调试页面数据都不显示 后来各种查阅 微信官网提供的调试工具 wx.setEnableDebug 使用安卓机测试出报错{"errMsg":&qu ...

  6. 微信小程序真机调试报错{“errMsg“:“hideLoading:fail:toast can‘t be found“}

    真机调试时,遇到报错: (in promise) MiniProgramError {"errMsg":"hideLoading:fail:toast can't be ...

  7. 微信小程序报错errMsg: “navigateTo:fail webview count limit exceed“

    一个需求需要切换tab签,跳转不同页面,心想使用 wx.navigateTo 实现跳转效果. 一开始跳转的时候没有问题,后面点击多了的时候,会报错,如下: 于是翻译了一下,发现出现的问题如下: 最后, ...

  8. 微信小程序报错:navigateTo:fail can not navigateTo a tabbar page的解决方法

    1.报错截图: 2.报错原因:navigateTo/redirectTo都不能跳转tarBar内的页面 注意:app.json文件中的tarBar中注册的pagepath即为tarBar页面,如下图所 ...

  9. 微信小程序报错:navigateTo:fail can not navigateTo a tabbar page

    转载 https://blog.csdn.net/zkw_1998/article/details/105276463?utm_medium=distribute.pc_relevant.none-t ...

最新文章

  1. java怎么让进程停止_JAVA:如何在进程停止时调用一个方法(甚至有可能吗?)
  2. 我的地盘听我的....
  3. 商汤科技 中科院自动化所:视觉跟踪之端到端的光流相关滤波 | CVPR 2018
  4. Go36-32-context.Context
  5. 驱动12.移植dm9000驱动程序
  6. __name__的意义与作用
  7. CPU 架构 —— ARM 架构
  8. C++算法学习(力扣:328. 奇偶链表)
  9. 最新Java技术栈面试详细完整
  10. OpenCV 银行卡卡号识别
  11. Docker 下载安装 Docker 配置镜像加速器
  12. Facebook广告投放:什么是Cloak,Cloak的原理以及主流Cloak程序介绍
  13. linux usb 网络摄像头,树莓派|Linux有问必答:如何在树莓派上安装USB网络摄像头...
  14. 插入排序基本思路与算法
  15. Spring IOC(控制反转)的理解
  16. 天润融通呼叫中心破教育机构分布式难题
  17. 适合大学生、职场人士提高效率的实用性网站。
  18. 时钟芯片PCF8563应用
  19. 关于Atom编辑器无法下载插件的解决方案
  20. 老司机管理系统(Julia Ann)

热门文章

  1. 循环次数几次_圆柱模板循环使用次数是多少呢
  2. char强制类型转换为int_C语言学习第5篇---类型转换概念理解
  3. 问题 1074: 数字整除
  4. 芯片,开源,数学,计算机
  5. 设计模式之单件模式(Singleton Pattern)
  6. 利用数据库创建webservice
  7. python 消息队列 get是从队首还是队尾取东西_python分布式爬虫中消息队列知识点详解...
  8. 时隙aloha协议仿真程序_工控ModbusTCP/IP协议仿真环境搭建
  9. python 中的三元表达式(三目运算符)
  10. mysql grant查看用户权限命令