好家伙,

0.错误描述

今天在开发中犯了一个比较严重的错误

对于Promise的错误使用

场景:

微信小程序中展示搜索条件列表

// API请求工具函数
const apiRequest = (url, method = 'GET', headers = {}) => {
return new Promise((resolve, reject) => {
wx.request({
url,
method,
header: headers,
success: (res) => resolve(res),
fail: (error) => reject(error)
});
});
}; const fetchTypelist = async () => {
const app = getApp();
const queryParams = app.globalData.queryParams;
console.log(queryParams)
let url = `${API_BASE_URL}/industryType/page?pageNo=1&pageSize=10`; // 添加常规的查询参数
for (const [key, value] of Object.entries(queryParams)) {
if (value) {
url += `&${key}=${encodeURIComponent(value)}`;
}
}
try {
const headers = {}; // 如果需要token,可以在这里添加
const response = await apiRequest(url, 'GET', headers); if (response.data.code === 200) {
console.log(response.data)
return response
} else {
throw new Error('获取地址列表失败');
}
} catch (error) {
throw error;
}
}; /.................../
调用方法 let result = fetchTypelist()
console.log(result)

 

猜猜会打印什么?

 一个promise是的仅仅只是一个promise,并没有拿到请求返回的结果

 

1.分析

async 函数默认返回一个 Promise,即使你在 async 函数中显式返回了值。

当你调用 async定义的函数 (fetchTypelist) 时,返回的实际上是一个 Promise,而不是直接返回的数据。

2.解决方法

2.1.使用await等待方法的执行,获取返回值

const getTypelist = async () => {
try {
const typelist = await fetchTypelist();
console.log(typelist); // 这里可以获取到返回的 rows
} catch (error) {
console.error(error); // 处理错误
}
};

2.2.使用链式调用.then()来处理promise

fetchTypelist()
.then((typelist) => {
console.log(typelist);
})
.catch((error) => {
console.error(error);
});

3.成功获取

第147篇:微信小程序开发中Promise的使用(aysnc,await)的更多相关文章

  1. 总结微信小程序开发中遇到的坑

    总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...

  2. 解决微信小程序开发中wxss中不能用本地图片

    微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...

  3. 微信小程序开发中的二三事之网易云信IMSDK DEMO

    本文由作者邹永胜授权网易云社区发布. 简介 为了更好的展示我们即时通讯SDK强悍的能力,网易云信IM SDK微信小程序DEMO的开发就提上了日程.用产品的话说就是: 云信 IM 小程序 SDK 的能力 ...

  4. 在微信小程序开发中使用Typescript

    Typescript的优势咱不需要赘述太多,有兴趣可以参考(https://www.typescriptlang.org/).今天给大家分享一下如何在微信小程序(或者其他同类小程序)开发中使用Type ...

  5. 关于微信小程序开发中遇到的缺少game.json问题的解决

    一.小程序开发的两种选项 ①小游戏开发:内部对应的入口配置文件为game.json丶game.wxml之类的文件或者项目. ②小程序开发:内部对应的入口配置文件为app.json丶app.wxml之类 ...

  6. 微信小程序开发中如何实现侧边栏的滑动效果?

    原文链接:https://mp.weixin.qq.com/s/7CM18izpZqf0oc0D75IGmQ 1 概述 在手机应用的开发中侧边栏滑动是很常见的功能,当然在小程序中也不会例外,很多特效还 ...

  7. 微信小程序开发中的http请求总结

    在微信小程序进行网络通信,只能和指定的域名进行通信,微信小程序包括四种类型的网络请求. 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downlo ...

  8. 【小程序开发】微信小程序开发中遇到的那些坑...

    第一坑: 设置了三个tabBar,却默认显示第二个,不能展示我的第一个[首页]. "list": [{ "pagePath":"page/KTGJ/i ...

  9. [技术博客]微信小程序开发中遇到的两个问题的解决

    IDE介绍 微信web开发者工具 前端语言 微信小程序使用的语言为wxml和wss,使用JSON以及js逻辑进行页面之间的交互.与网页的html和css略有不同,微信小程序在此基础上添加了自己的改进, ...

  10. 微信小程序开发中怎么设置转发(分享)的信息

    如果什么都不设置,转发时默认名称是小程序的名称,转发的图片显示的是当前页面的截图,如图一 如何在自定义转发信息呢? 在进行转发的页面中: Page({ onShareAppMessage: funct ...

随机推荐

  1. 人形机器人 —— Figure 01机器人亮相 | OpenAI多模态能力加持 | 与人类流畅对话交互 | 具身智能的GPT-4时刻

    视频地址: https://www.youtube.com/watch?v=vO1wnHA0tZg Figure AI 公司主页: https://www.figure.ai/ 根据Figure 01 ...

  2. 内网穿透之实践记录,使用花生壳进行内外穿透,场景:在家远程ssh连接到公司电脑或学校服务器

    今天在网上闲逛的时候看到这样一个内网穿透的软件,ngrok, https://gitee.com/kxwinxp/ngrok 记得10多年前自己在读大学的时候曾经好一段时间在研究内网穿透技术,最后发现 ...

  3. 【转载】WSL 的基本命令

    参考: https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands https://blog.csdn.net/u010099177/ar ...

  4. 实验室服务彻底死机记录——硬件故障——主板pcie槽坏掉或显卡坏掉

    2022年11月8日   后记(最新更新) 服务器送售后,售后给厂家技术打电话,厂家技术说可能是显卡的电源线松了,于是我们打开机箱把显卡的电源线紧了紧,然后神奇的事情发生了,故障解除了...... 一 ...

  5. PyTorch的TensorBoard用法示例

    原文: https://www.emperinter.info/2020/07/30/tensorboard-in-pytorch/ 缘由 自己上次安装好PyTorch以及训练了一下官方的数据,今天看 ...

  6. FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo

    ​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ.微信为代表的即时通信工具,能够实时传输文本和图片.其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊. 除了常见的图文即时通信, ...

  7. 这就是为什么你学不会DDD

    本文书接上回<为了给Javaer落地DDD,我们不得不写开源组件>,欢迎关注公众号(老肖想当外语大佬),获取最新文章更新和DDD框架源码,视频和直播在B站. https://mp.weix ...

  8. 搜索引擎用法 cheatsheet

    逻辑 写法 与 keyword1 keyword2 或 keyword1 OR keyword2 限定关键词的排列 "keyword" 限定搜索的网站 site:cnblogs.c ...

  9. c++学习笔记(三):函数++

    函数PLUS 函数默认参数 在c++中,函数的形参列表中的形参是可以有默认值的.调用函数时,如果未传递参数的值(传入参数为空),则会使用默认值,如果指定了值,则会忽略默认值,使用传递的值. 语法:返回 ...

  10. IDEA - ruoyi - srpingboot - 离线运行

    前提:有项目对应的repository文件,RY的DB配置正常(mysql新增schema ry, 执行 /sql下的sql文件,同步调整ruoyi-admin下的application-druid. ...