uni-app 中通过 async + await + Promise 实现 request 请求同步化

5 篇文章 0 订阅
本文介绍了如何在uni-app中借助Promise和async+await将默认异步的uni.request请求改造成同步形式。通过封装http.js文件并配合async函数,实现数据请求的逐级同步处理,简化了多级异步调用的复杂性。
摘要由CSDN通过智能技术生成

在 uni-app 中 uni.request 默认是异步请求,那么如果我们想将其改为同步请求可以吗?显然是可以的!我们可以借助 Promise 结合 async + await 使请求同步化。具体步骤如下:

基于 Promise 对 request 请求进行封装

请参考之前的文章:uni-app 基于 Promise 的 request 请求封装

使用 async + await,使异步请求同步化

<script>
    import http from '@/commons/http.js'

    export default {
        data() {
            return {
            }
        },
        methods: {
            async loadData1 (id) {
                await http('data/get1', {
                    id: id
                }).then(res => {
                    console.log(res.data)
                }).catch(err => {
                    console.error(err)
                })
            },
            async loadData2 (id) {
                await http('data/get2', {
                    id: id
                }).then(res => {
                    console.log(res.data)
                }).catch(err => {
                    console.error(err)
                })
            }
        },
        async onLoad(option) {
            await this.loadData1(1)
            await this.loadData1(2)
        }
    }
</script>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值