当前位置: 首页 > news >正文

uni-app:解决异步请求返回值问题

可以使用 Promise 或者回调函数来处理异步请求的返回值。

方法一: Promise处理异步请求的返回值

使用 Promise 可以将异步请求的结果通过 resolve reject 返回,然后通过 .then() 方法获取成功的结果,通过 .catch() 方法获取错误信息。

一、在common.js中写入请求后台的操作

核心代码

return new Promise((resolve, reject) => {

        //请求操作

});

success: res => {

        console.log('请求成功')
        resolve(res.data); // 返回成功的结果
},
fail(res) {
        console.log(res)
        reject(res); // 返回失败的结果
 }

 完整代码

//http方式进行登录
function login_httpmode(username, password, cmd) {return new Promise((resolve, reject) => {uni.request({url: ip + 'sys/user/login',data: {cmd: cmd,usrname: username,passwd: password},method: 'POST',dataType: 'json',header: {"content-type": "application/json"},success: res => {console.log('请求成功')resolve(res.data); // 返回成功的结果},fail(res) {console.log(res)reject(res); // 返回失败的结果}});});
}

二、在页面调用common.js中的方法

核心代码 

// 调用方法
common.login_httpmode(username, password, cmd)
        .then(info => {
                console.log('获取方法中的返回值',info); // 获取到正确的返回值
        })
        .catch(error => {
                 console.log(error); // 获取到错误信息
        });

完整代码

<template><view><button @click="getdata">点我获取异步请求数据</button></view>
</template>
<script>import common from "@/utils/common.js"export default {data() {return {}; },methods: {getdata(){//定义几个测试数据var username = "admin";var password = "admin"var cmd = "124"// 调用方法common.login_httpmode(username, password, cmd).then(info => {console.log('获取方法中的返回值',info); // 获取到正确的返回值//下面可以执行获取到异步数据的方法if(info.success == true){console.log("登录数据正确")}		else{console.log("登录数据错误")}}).catch(error => {console.log(error); // 获取到错误信息});}},};
</script>
<style></style>

方法二:回调函数来处理异步请求的返回值

使用回调函数时,将回调函数作为参数传递给异步请求方法,在请求成功时调用 callback(null, res.data) 返回成功的结果,在请求失败时调用 callback(res) 返回错误信息。

一、在common.js中写入请求后台的操作

核心代码

//参数中写入 callback

function login_httpmode(username, password, cmd, callback) {}

//请求成功与失败时

success: res => {
      callback(null, res.data); // 返回成功的结果
    },
    fail: res => {
      callback(res); // 返回失败的结果
    }

完整代码

function login_httpmode(username, password, cmd, callback) {uni.request({url: ip + 'sys/user/login',data: {cmd: cmd,usrname: username,passwd: password},method: 'POST',dataType: 'json',header: {"content-type": "application/json"},success: res => {console.log('请求成功');console.log(res.data);callback(null, res.data); // 返回成功的结果},fail: res => {console.log(res);callback(res); // 返回失败的结果}});
}

二、在页面调用common.js中的方法

核心代码

common.login_httpmode(username, password, cmd, (error, info) => {
        if (error) {
                console.log(error); // 获取到错误信息
        } else {
                console.log(info); // 获取到正确的返回值
        }
});

完整代码

<template><view><button @click="getdata">点我获取异步请求数据</button></view>
</template>
<script>import common from "@/utils/common.js"export default {data() {return {}; },methods: {getdata(){//定义几个测试数据var username = "admin";var password = "admin"var cmd = "124"// 调用方法common.login_httpmode(username, password, cmd, (error, info) => {if (error) {console.log(error); // 获取到错误信息} else {console.log(info); // 获取到正确的返回值}});}},};
</script>
<style></style>

相关文章:

uni-app:解决异步请求返回值问题

可以使用 Promise 或者回调函数来处理异步请求的返回值。 方法一&#xff1a; Promise处理异步请求的返回值 使用 Promise 可以将异步请求的结果通过 resolve 和 reject 返回&#xff0c;然后通过 .then() 方法获取成功的结果&#xff0c;通过 .catch() 方法获取错误信息。 …...

<多线程章节七>wait() 和 notify()

&#x1f490;专栏导读 本篇文章收录于多线程&#xff0c;也欢迎翻阅博主的其他文章&#xff0c;可能也会让你有不一样的收获&#x1f604; &#x1f342;JavaSE &#x1f337;多线程 &#x1f33c;数据结构 文章目录 &#x1f490;专栏导读&#x1f490;wait()&#x1f490;no…...

竹云产品入选《2023年度上海市网络安全产业创新攻关成果目录》

为推进网络安全产业发展&#xff0c;建设网络安全产业创新高地&#xff0c;上海市经济和信息化委员会于10月24日正式发布《2023年度上海市网络安全产业创新攻关成果目录》&#xff0c;共评选出16项创新成果&#xff0c;其中包括基础技术创新8项、应用技术创新4项、服务业态创新…...

客户端负载均衡策略:loadBalancer,ribbon

客户端负载均衡是指在分布式系统中&#xff0c;客户端通过某种策略将请求分发到多个服务提供者实例上&#xff0c;以达到负载均衡和提高系统的可用性和性能。 在 Java 生态系统中&#xff0c;Ribbon 是一个常用的客户端负载均衡框架&#xff0c;它是 Netflix 开源的一部分&…...

canvas基础3 -- 交互

点击交互 使用 isPointInPath(x, y) 判断鼠标点击位置在不在图形内 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…...

Flutter——最详细(Scaffold)使用教程

Scaffold简介 相当于界面的主体&#xff08;类似于安卓最外层PhoneWindow&#xff09;&#xff0c;组件的展示都必须依附于它。 使用场景&#xff1a; 每一个界面都是脚手架&#xff0c;通过它来进行架构实现&#xff0c;优美的布局效果。 属性作用appBar顶部的标题栏body显示整…...

C语言编写图形化界面-创建按钮-为其指定样式

文章目录 前置章节指定窗口样式给按钮加边框扁平化按钮复选框样式按钮自动复选框 单选按钮三态按钮自动三态按钮 默认按钮样式&#xff08;对话框Enter键&#xff09; 设置按钮位置和大小封装函数 前置章节 开始之前&#xff0c;需要学习以下章节&#xff1a; 创建窗口 窗口过…...

C++并发与多线程(7) | 创建多个线程时数据共享的问题

一、创建和等待多个线程 借助vector存放多个线程thread对象,借助vector和它的迭代器实现创建和运行多个线程,代码如下: #include <iostream> #include <thread> #include <vector> using namespace std;void myprint(int inum) {cout << "mypr…...

进程间通信(匿名管道、命名管道、消息队列、共享内存、信号量、信号、Socket)

文章目录 一、什么是进程间通信二、管道1.匿名管道(pipe)a).创建匿名管道b).管道的读写规则c).匿名管道的特点 2.有名管道(FIFO)a).创建命名管道b).命名管道的特点c).基于命名管道的进程间通信&#xff08;服务端/客户端&#xff09; 三、消息队列四、共享内存1.什么是共享内存…...

浅谈中国汽车充电桩行业市场状况及充电桩选型的介绍

安科瑞虞佳豪 车桩比降低是完善新能源汽车行业配套的一大重要趋势&#xff0c;目前各国政府都在努力推进政策&#xff0c;通过税收减免、建设补贴等措施提升充电桩建设速度&#xff0c;以满足新能源汽车需求。 近年来&#xff0c;在需求和技术的驱动下&#xff0c;充电桩的平…...

Postgresql在jdbc处理bit字段的解决方案

问题&#xff1a; bit如果长度为1&#xff0c;则会默认为布尔型&#xff08;1-true 0-false&#xff09;&#xff1b; bit如果长度大于1&#xff0c;则会默认为bit类型&#xff0c;但是代码中以前常用的两种set方式&#xff0c;会报错 第一种方式&#xff1a; ps.setObject(i1,…...

ESMapping字段

在 Elasticsearch 中&#xff0c;字段&#xff08;field&#xff09;是指用于表示数据的最小单元。每个文档&#xff08;document&#xff09;都由一个或多个字段组成&#xff0c;字段存储了文档的不同属性或数据。 字段可以包含不同的数据类型&#xff0c;如文本、数字、日期…...

基于LDA的隐式标签协同过滤推荐算法_文勇军

, 王全民等人[14]提出了一种交替奇异值分解算法 (ASVD),即结合协同过滤和隐语义分析的混合推荐 算法。唐泽坤等人[15]融合聚类算法和协同过滤推荐 算法,取得了一定效果。高娜等人[16⁃19]将标签因子 和协同过滤推荐算法结合研究缓解了数据稀疏问题,但这…...

在线设计数据库表用Itbuilder,极简易用真香!!!

“如果您想要一个具有快速搜索运行的高性能数据库&#xff0c;那么数据库设计是必不可少的&#xff0c;花时间设计数据库将帮助您避免效率低下和高冗余等问题”。 在线数据库设计软件itbuilder&#xff0c;界面清爽漂亮&#xff0c;功能简洁&#xff0c;没有多余设置很容易上手…...

onclick事件的用法

onclick 事件是一种在网页开发中用来处理用户点击操作的事件。它通常用于 HTML 元素&#xff08;如按钮、链接、图像等&#xff09;&#xff0c;以便在用户单击该元素时触发 JavaScript 函数或执行一些特定的操作。以下是 onclick 事件的用法&#xff1a; HTML 元素上的 onclic…...

二叉排序树

二叉排序树定义及性质 二叉排序树(Binary Sort Tre)或者是一棵空树&#xff0c;或者是具有如下性质的二叉树&#xff1a; (1) 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b; (2) 若它的右子树不空&#xff0c;则右子树上所有结点的值均…...

探秘Spring的设计精髓,深入解析架构原理

序员与平庸的程序员之间的区别&#xff0c;是在于认为自己的代码重要还是数据结构更加重要。平庸的程序员眼里只有代码&#xff0c;优秀的程序员则关注数据结构及之前的关系。” 1、spring的设计理念 spring提供了一个轻量级的开发框架&#xff0c;抽象了实际开发中的很多共…...

Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案

Python Wordcloud报错&#xff1a;Only supported for TrueType fonts&#xff0c;多种解决方案。 报错内容如下&#xff1a; 2023-10-26T09:35:41.190459839Z Traceback (most recent call last): 2023-10-26T09:35:41.190502589Z File “lib/task/compute.py”, line 621, i…...

为虚拟网络提供敏捷负载均衡:Everoute LB 特性解读

为了保证应用系统的可用性&#xff0c;同时避免并发访问导致后端服务器出现性能瓶颈&#xff0c;不少用户都通过负载均衡技术优化流量分发。随着虚拟化平台下用户业务规模的持续扩大&#xff0c;虚拟化网络的数据访问量也不断增加&#xff0c;而传统负载均衡通常通过硬件负载均…...

Jmeter 接口测试,参数值为列表,如何参数化?

最近在我的教学过程中&#xff0c;我的一个学生问了我一个问题&#xff0c;他们公司的一个接口参数值是列表&#xff0c;列表中值的数量有多有少&#xff0c;问我在 jmeter 中如何让这个参数的值进行参数化&#xff1f; 看到这种问题&#xff0c;你的第一反应是什么&#xff1f…...

Netgear路由器急救指南:nmrpflash如何让变砖设备重获新生

Netgear路由器急救指南&#xff1a;nmrpflash如何让变砖设备重获新生 【免费下载链接】nmrpflash Netgear Unbrick Utility 项目地址: https://gitcode.com/gh_mirrors/nmr/nmrpflash 当你心爱的Netgear路由器因为固件升级失败、意外断电或其他原因变成一块"砖头&q…...

柔性LED灯丝DIY:从电路原理到创意饰品制作全攻略

1. 项目概述&#xff1a;当生日遇上柔性LED灯丝给孩子的生日派对准备一份独一无二的、会发光的惊喜&#xff0c;是很多家长和手工爱好者的心愿。这次&#xff0c;我们不买现成的塑料灯牌&#xff0c;而是亲手做一个能戴在头上或挂在脖子上的“生日数字灯冠”。这个项目的核心&a…...

Wand-Enhancer终极指南:免费解锁WeMod专业功能的完整解决方案

Wand-Enhancer终极指南&#xff1a;免费解锁WeMod专业功能的完整解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的高昂订阅费…...

Docker容器化Emacs:构建可移植、一致的开发环境解决方案

1. 项目概述&#xff1a;为什么要在Docker里运行Emacs&#xff1f;如果你是一个Emacs的重度用户&#xff0c;或者是一个开发者&#xff0c;你很可能遇到过这样的困境&#xff1a;你精心配置的Emacs环境&#xff0c;在换了一台新电脑、升级了操作系统&#xff0c;或者需要在多台…...

JetBrains IDE试用期重置终极指南:简单三步实现30天无限续杯

JetBrains IDE试用期重置终极指南&#xff1a;简单三步实现30天无限续杯 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经在项目开发的关键时刻&#xff0c;突然看到JetBrains IDE弹出"评估期已结束…...

Python Reddit数据采集与分析实战:从API调用到舆情监控

1. 项目概述与核心价值最近在开源社区里&#xff0c;一个名为openshrug/reddit-intel的项目引起了我的注意。乍一看&#xff0c;这像是一个针对 Reddit 平台的数据抓取或分析工具&#xff0c;但深入探究后&#xff0c;我发现它的定位远不止于此。它更像是一个为开发者、数据分析…...

Excalidraw草图AI技能:从图形解析到自动化代码生成实战

1. 项目概述&#xff1a;一个能“读懂”你草图的AI技能如果你经常用Excalidraw画流程图、架构图或者UI草图&#xff0c;那你一定遇到过这样的场景&#xff1a;画完一张图&#xff0c;想把它整理成文档&#xff0c;或者想基于这张图生成一些代码&#xff0c;又或者想让它自己动起…...

基于CircuitPython的嵌入式游戏开发:从帧缓冲区到对象池的Flappy Bird实现

1. 项目概述&#xff1a;当Flappy Bird遇上CircuitPython如果你玩过经典的Flappy Bird&#xff0c;也捣鼓过像Raspberry Pi Pico这样的微控制器&#xff0c;那你有没有想过把这两者结合起来&#xff1f;我最近就用CircuitPython在RP2040开发板上完整复刻了一个“猫版”Flappy B…...

【最新 v2.7.1 版本安装包】5 分钟搞定 OpenClaw,零基础无需命令一键部署保姆级教学

OpenClaw&#xff08;小龙虾&#xff09;Windows 一键部署保姆级教程 | 10 分钟搭建专属数字员工【点击下载最新OpenClaw安装包】 前言 2026 年开源圈热门 AI 智能体 OpenClaw&#xff08;昵称小龙虾&#xff09;&#xff0c;GitHub 星标突破 28 万&#xff0c;凭借本地运行 …...

基于视觉语言模型的智能体框架:让AI看懂界面并自动操作

1. 项目概述&#xff1a;当AI学会“看”与“想”最近在探索AI与视觉结合的领域时&#xff0c;我深度体验了landing-ai团队开源的vision-agent项目。这不仅仅是一个工具库&#xff0c;它更像是一个为大型语言模型&#xff08;LLM&#xff09;装上了“眼睛”和“手”的智能体框架…...