uni-app中使用 async + await 实现异步请求同步化

简介: uni-app中使用 async + await 实现异步请求同步化

问题:

在uni-app中,uni.request等网络请求都是异步的,直接使用可能会导致页面渲染完毕时,数据还未成功获取的情况。

解决方法:

<script>
export default {
  data() {
    return {};
  },
  methods:{
    getOutInfo(){ 
      return new Promise((resolve, reject) => {
        uni.request({ 
          url : `请求地址`,
          method : "GET",
          data : {},
          success: (res) => {
            console.log(res)
                  resolve('suc');  // 千万别忘写!!!
          },
          fail:(err)=>{
            reject('err')
          }
        })
      })
    },
    async mountDealCount(){
      await this.getOutInfo()
      console.log('我在数据获取之后执行')
    }
  },
  beforeMount(){
    this.mountDealCount()
  }
}
</script>

效果:

2020062310470442.png

注意:当调用的级数增加的时候,需要逐级的增加async和await

<script>
export default {
  methods:{
    getOutInfo(){ 
      return new Promise((resolve, reject) => {
        uni.request({ 
          url : `请求地址`,
          method : "GET",
          data : {},
          success: (res) => {
            console.log(res)
                  resolve('suc');  // 千万别忘写!!!
          },
          fail:(err)=>{
            reject('err')
          }
        })
      })
    },
    async dealInfo(){
      await this.getOutInfo()
      console.log('我在数据获取之后执行')
    },
    async loadDeal(){
      await this.dealInfo()
      console.log('我在 dealInfo 之后执行')
    }
  },
  beforeMount(){
    this.loadDeal()
  }
}
</script>

总结:

  1. 将uni.request请求封装在Promise构造函数中;
  2. 使用async + await;
相关文章
|
SQL 安全 关系型数据库
一日一技:如何让Django 的app migration重新与数据库同步
一日一技:如何让Django 的app migration重新与数据库同步
172 0
|
监控 前端开发 Java
使用 GetIt 同步App不同页面间数据
本篇完成了整个动态管理的业务逻辑,包括了新增、删除、编辑、查看次数等功能。通过 GetIt 容器管理插件及接口定义,可以很简单快速地完成页面之间的数据同步。
278 0
使用 GetIt 同步App不同页面间数据
|
缓存 JavaScript 前端开发
使用APICloud开发App的性能优化探索——合理使用同步/异步接口
本文从同步/异步原理角度出发,介绍了App的优化方法,灵活使用这些方法,可以在开发App时给用户带来更好的使用体验。
193 1
|
Android开发
最新同步问题IOS10安全策略变更,native app需要增加alipays协议白名单
在IOS10里,由于安全策略的变化,导致在native app里,在webview中,默认不支持appschema协议(IOS10之前默认支持)。  如果需要支持,需要将此appschema加入白名单中,因此如果某个nativeapp 需要在webview中通过alipays://xxxx 的方式唤起支付宝app,请在 Info.
605 12
|
存储 视频直播
如何理解直播APP源码开发中的音视频同步
视频 直播APP源码的视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程,就像在一个本子的每一页画上画,然后快速翻动的感觉。
|
Android开发
直播APP源码是如何实现音视频同步的
直播APP源码音视频同步主要用于在音视频流的播放过程中,让同一时刻录制的声音和图像在播放的时候尽可能的在同一个时间输出。
|
2天前
|
Web App开发 Android开发
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
实时数据传输在互联网中至关重要,不仅支持即时通讯如QQ、微信的文字与图片传输,还包括音视频通信。一对一通信常采用WebRTC技术,如《Android Studio开发实战》中的App集成示例;而一对多的在线直播则需部署独立的流媒体服务器,使用如SRT等协议。SRT因其优越的直播质量正逐渐成为主流。本文档概述了SRT协议的使用,包括通过OBS Studio和SRT Streamer进行SRT直播推流的方法,并展示了推流与拉流的成功实例。更多细节参见《FFmpeg开发实战》一书。
10 1
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
|
9天前
|
Web App开发 5G Linux
FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
一年一度的毕业季来临,计算机专业的毕业设计尤为重要,不仅关乎学业评价还积累实战经验。选择紧跟5G技术趋势的音视频APP作为课题极具吸引力。这里推荐三类应用:一是融合WebRTC技术实现视频通话的即时通信APP;二是具备在线直播功能的短视频分享平台,涉及RTMP/SRT等直播技术;三是具有自定义动画特效及卡拉OK歌词字幕功能的视频剪辑工具。这些项目不仅技术含量高,也符合市场需求,是毕业设计的理想选择。
32 6
FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
|
8天前
|
编解码 Java Android开发
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
28 4
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

热门文章

最新文章