用小程序做东西时遇到一个异步问题,比如上传图片需要读取返回的真实地址时,因为小程序异步的原因,程序会继续往下执行

往往是图片还没传完,下一步的函数都运行完了,这个时候根本取不到真实地址。

查看了很多文章,大部分都说用Promise来阻塞异步解决, 但是看了下Promise的用法文章,可能我才疏学浅,没太搞懂。

后来我参考了一个高手写的代码,终于知道如何用了,具体原理我就不想深究了,使用套路写在下面:

我觉得不要做什么Promise API封装  不需要JS页面 import 这个封装函数,只会让人越搞越晕

let  PromiseArr = []

PromiseArr.push(new Promise((reslove,reject)=>{

//这里写你想要阻塞的函数 ,比如wx.request 啊 wx.cloud.uploadfile啊 等等

success:res=>{

//这里写逻辑,比如获取图片云存储的真实地址  this.data.imagePath =  res.fileId 等等

reslove();

}

}))

//关键的执行步骤

Promise.all(PromiseArr).then(res=>{

//这里就可以开始写下一步执行的函数了 ,甚至也可以做Promise的嵌套,再写一个在里面

this.setdata({

//把上一步获得的结果进行加工, 这样的就不会异步了。

images: this.data.imagePath

})

})

只要按照以上套路出牌,基本上是没问题的。

微信小程序 Promise最简单的用法,解决异步问题相关推荐

  1. 小程序promise封装post请求_微信小程序promise封装get/post请求

    微信小程序promise封装get/post请求 2020-07-04 20:42:49 微信小程序promise封装get/post请求 叶子兔 2018-10-10 08:55:30  1056  ...

  2. 小程序promise封装post请求_微信小程序 es6-promise.js封装请求与处理异步进程

    微信小程序 es6-promise.js封装请求与处理异步进程 下载es6-promise.js置于根目录下的libs文件夹下: 在根目录utils文件夹下新建httpsPromisify.js,即定 ...

  3. android商品数量加减,微信小程序实现一个简单的商品数量加减案例

    简介 这是一个用微信小程序原生代码实现的数量加减demo,主要是用于商品购物车或者商品详情修改数量使用,很简单哦~~~. 核心js方法说明addCount(增加数量) delCount (减少数量) ...

  4. 微信小程序之movable-view的direction用法

    微信小程序之movable-view的direction用法 movable-view必须在 movable-area 组件中,并且必须是直接子节点,否则不能移动,movable-area的大小必须比 ...

  5. 微信小程序 border设置单边框失效解决办法

    微信小程序 border设置单边框失效解决办法 遇到的问题 解决的方法 总结 遇到的问题 border-right: 1 rpx solid #ccc;border-bottom: 1 rpx sol ...

  6. 开发微信小程序 中遇到的坑 及解决方法

    开发微信小程序 中遇到的坑 及解决方法 参考文章: (1)开发微信小程序 中遇到的坑 及解决方法 (2)https://www.cnblogs.com/feiye512/p/6070052.html ...

  7. 微信小程序访问豆瓣电影api400错误解决方法

    微信小程序访问豆瓣电影api400错误解决方法 参考文章: (1)微信小程序访问豆瓣电影api400错误解决方法 (2)https://www.cnblogs.com/bubbleStar/p/610 ...

  8. 小程序数据框有重影_微信小程序input重影什么原因?怎么解决重影?

    微信小程序input重影什么原因?怎么解决重影?微信小程序input输入框输入出现了重影的情况,这是什么原因呢?又该怎么去解决微信小程序input重影问题. 微信小程序input重影怎么办? 问题描述 ...

  9. 微信小程序android错误,微信小程序首页数据初始化失败的解决方法

    一. 问题描述 用户首次后再次进入小程序时,我们通常需要通过获取用户openid或unionid用作唯一标示与后台进行数据交流,初始化用户信息.当我们通过第三方服务器跟微信建立请求时,微信需要用户确认 ...

最新文章

  1. Hadoop Hive sql 语法详细解释
  2. .NET判断字符串是否是数值型或xxx型
  3. Apache2.4开启php
  4. linux基本命令du,Linux常用操作命令汇总
  5. 存储过程,游标和触发器实例
  6. kettle分布式部署_Kettle(三)分布式架构
  7. Ubuntu16.04 安装有道词典
  8. springboot 控制台输出错误信息_springboot(6)——整合日志
  9. java 读取文件内容 方法
  10. cartographer栅格地图介绍
  11. ai人工智能将替代人类_人类与人工智能
  12. [WinError 2] 系统找不到指定的文件
  13. Windows——如何关闭笔记本自带键盘
  14. 鸿蒙的境界是什么,“鸿蒙”究竟为何物?扶桑树上的神祇,还是混沌的状态?...
  15. 关于mobi书籍文件合并
  16. MFC 多线程编程总结
  17. put和post区别
  18. 【单片机毕业设计】【mcuclub-312】数字时钟 | 万年历电子时钟 | 多功能时钟 | 智能闹钟 | 语音电子时钟
  19. CentOS-7-x86_64-DVD-1503-01.iso安装mysqlmysql-5.7.25-1.el7.x86_64.rpm-bundle.tar(亲测有效)
  20. Vue实现分享链接到新浪微博

热门文章

  1. matlab中randperm函数的用法
  2. win10装debian 双系统_如何拥有一个Windows 10和Debian 10的双系统
  3. linux查看文件被谁占用了,Linux查询被占用文件
  4. SwiftUI 动画图形之绘制正弦波实现个性化波浪纹效果 (教程含源码)
  5. js实现随机移动的萤火虫
  6. Vue和React代码检测工具
  7. Java项目——TomJerry Jump Game跑酷游戏
  8. SpringBoot This application has no explicit mapping for /error, so you are seeing this as a fallback
  9. 点云 3D 可视化 - Open3D 库
  10. Latex如何在表格下方显示注脚