随笔 - 76, 文章 - 0, 评论 - 5, 阅读 - 46468

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

使用async/await封装uni-app请求

Posted on   WinChance  阅读(4634)  评论(0编辑  收藏  举报

直接上代码:

复制代码
// async版get请求
async function getAsync(url, data) {
    uni.showLoading({
        title: '数据加载中...',
        mask: true
    });

    let [err, res] = await uni.request({
        url: _BASE_URL + url,
        method: 'GET',
        data: data,
        header: {
            'content-type': 'application/json',
            'Cookie': 'JSESSIONID=' + util.getStorage('sessionId')
        }
    });

    uni.hideLoading();
    if (res) {
        return res.data;
    }

    if (err) {
        uni.showToast({
            title: '请求超时!',
            icon: 'none',
            mask: true,
            duration: 2000
        });
    }
}
复制代码

其他方案:

复制代码
// Promise版
async function getPromise(url) {
    return new Promise((resolve, reject) => {
        uni.request({
            url: _BASE_URL + url,
            method: 'GET',
            header: {
                'content-type': 'application/json',
                'Cookie': 'JSESSIONID=' + util.getStorage('sessionId')
            },
            success: (res) => {
                if (1 == res.data.code) {
                    uni.hideLoading();
                    resolve(res.data);
                } else {
                    uni.hideLoading();
                    uni.showToast({
                        title: res.data.msg,
                        icon: 'none',
                        mask: true,
                        duration: 2000
                    });
                    resolve(res.data);
                }
            },
            fail: (err) => {
                uni.hideLoading();

                if (util.getStorage('mark') == 0) {
                    uni.showToast({
                        title: '请求超时!',
                        icon: 'none',
                        mask: true,
                        duration: 2000
                    });
                } else {
                    uni.showToast({
                        title: 'Request timed out!',
                        icon: 'none',
                        mask: true,
                        duration: 2000
                    });
                }
                reject(err);
            }
        });
    })
}
复制代码

 

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示