【鸿蒙开发ArkTS】async await 与Promise静态函数的联动使用

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

一、async函数和await

1. 概念

async/await是一种用于处理异步操作的Promise语法糖,使得编写异步代码变得更加简单和易读。通过使用async关键字声明一个函数为异步函数,并使用await关键字等待Promise的解析(完成或拒绝),以同步的方式编写异步操作的代码。

2. 作用(个人理解)

Promise对象的.then回调函数在一些情况下会产生回调函数地狱情况,代码嵌套一层套一层,可读性变差,很容易变成“屎山代码”,在这种情况下先是产生了链式编程的方式避免嵌套,可是依然曾在回调函数,可读性还是不高。async/await作为Promise语法糖解决了这个问题。

3. 基本使用

核心步骤:

  1. async 修饰函数
  2. await 等待成功(Promise 对象)
  3. 一个async函数内,可以有多个await,依次同步方式执行
async function func() {
  // await 获取到的是 之后 Promise 对象的成功结果
  const res1 = await Promise对象1
  const res2 = await Promise对象2
  const res3 = await Promise对象3
}
func()

4. 注意事项

  1. await不能单独使用,必须和async配对使用
  2. async要加在离await最近的函数,表示一对
  3. async修饰的函数,返回值类型会自动变为Promise<T>
  4. await只能拿到成功的结果,无法拿到失败的结果

5. 演示:如何解决回调地狱?

// 1. 定义一个返回值类型为Promise对象的函数
function showCount(count: number): Promise<str
HarmonyOS 应用开发ArkTS异步并发(Promiseasync/await) Promiseasync/await提供异步并发能力,是标准的JS异步语法。异步代码会被挂起并在之后继续执行,同一时间只有一段代码执行,适用于 单次I/O任务 的场景开发,例如一次网络请求、一次文件读写等操作。异步语法是一种编程语言的特性,允许程序在执行某些操作时不必等待其完成,而是可以继续执行其他操作。 阅读详情

相关推荐

使用DevEco Studio高效开发ArkTS

介绍本篇Codelab主要介绍使用DevEco Studio开发工具,高效开发登录应用的案例。使用开发工具以下功能:使用DevEco Studio开发工具的预览器适配多设备页面。使用DevEco Studio开发工具运行和调试代码。使用DevEco Studio开发工具测试代码。

csdndevpress0028的博客 6849

鸿蒙原生应用开发-ArkTS语言基础类库异步并发简述async/await

async函数内部,可以使用await关键字等待一个Promise对象的解析,并返回其解析值。如果一个async函数抛出异常,那么该函数返回的Promise对象将被拒绝,并且异常信息会被传递给Promise对象的onRejected()方法。通过使用async关键字声明一个函数为异步函数,并使用await关键字等待Promise的解析(完成或拒绝),以同步的方式编写异步操作的代码。下面是一个使用async/await的例子,其中模拟了一个异步操作,该操作会在3秒钟后返回一个字符串。

weixin_69135651的博客 1816

中小团队必看!用Harbor+Jenkins打造轻量级K3S交付流水线(含成本优化方案)

本文为中小团队详细介绍了如何利用K3S、HarborJenkins构建一套高性价比的自动化交付流水线。内容涵盖单节点K3S集群的效能配置、Harbor镜像仓库的磁盘空间优化、Jenkins共享库实现流水线复用,并提供了完整的实战案例成本优化方案,帮助团队以较低成本快速落地高效的自动化部署。

weixin_29223603的博客 475

鸿蒙开发Promise,async函数awaitPromise静态方法的理解使用

觉得有用的话可以点点小赞赞,没有人能够熄灭漫天星光,加油鸿蒙开发者们。

aaw2002的博客 2195

鸿蒙开发之路:Promise/async-await异步任务管理

Promise/async-await鸿蒙应用开发提供了现代化、类型安全的异步编程解决方案。通过本文的深度解析,我们掌握了从基础概念到高级实践的完整知识体系。

m0_72846959的博客 3469

零基础鸿蒙应用开发第三十一节:await简化异步编程Promise进阶并发

本文介绍了async/await语法糖的核心用法及其优势。主要内容包括: 通过async/awaitPromise异步代码"同步化"书写,解决链式调用的冗余问题; 使用try/catch/finally统一处理同步和异步错误,使代码更简洁直观; 对比Promise链式调用,async/await在逻辑连贯性、错误处理和条件判断方面更具优势; 常见易错点分析,如忘记捕获await错误、不必要的Promise包装等。

weixin_35045177的博客 1421

鸿蒙ArkTS核心编程手册:函数参数、高阶封装、异步Promise/async-await、流程控制异常捕获规范

摘要: 本文系统讲解ArkTS工程化编程规范,针对鸿蒙开发中常见的函数不规范、异步混乱、异常未捕获等问题,提供完整解决方案。重点包括: 函数体系:强制类型声明、可选/默认参数、剩余参数规范; 高阶函数:泛型封装、防抖节流等工具函数实现; 流程控制:严格类型校验的条件判断循环; 异步编程:Promise链式调用async/await同步化写法; 异常处理:try/catch捕获运行时异常,杜绝闪退。 全文以鸿蒙原生代码为例,涵盖网络请求、组件封装等实战场景,助力开发者规避隐性Bug,提升代码健壮性。

linwenglong7155的博客 432

HarmonyOS 鸿蒙应用开发(十一、面向鸿蒙开发JavaScript基础)

网络上介绍鸿蒙应用TypeScript语言学习的文章已经很多了,但唯独对JavaScript基础介绍偏少。这里补充介绍一下,觉得有帮助的小伙伴可以点击收藏。 ArkTS 是 TypeScript 的一种扩展版本,而 TypeScript 本身就是 JavaScript 的超集。这意味着 ArkTS 保留了大部分 JavaScript 的语法和编程范式。因此JavaScript 不仅是前端开发的核心,还在鸿蒙应用中扮演着重要角色。

猫哥 的沉淀、积累、总结。天天学习,好好向上...c/c++,嵌入式 linux,Android,HarmonyOS,AIOT) 4399

鸿蒙ArkTs干货!!!异步和同步怎么理解?async/await的介绍和宝藏用法(特别通俗易懂)

想必,大家在同步异步之间存在一些疑惑,今天我就带大家用我自己的大白话,来进行详细的解说,希望对大家有帮助!在了解同步异步直接的知识时,咱们需要先了解以下几个方面。

2401_82543876的博客 2503

OpenHarmony Promise详解

一骑红尘妃子笑,无人知是荔枝来。

袁震的博客 1831

鸿蒙 - arkTs:网络请求封装和使用

鸿蒙 - arkTs:网络请求封装和使用

Erek的前端博客; 2757

鸿蒙征文|HarmonyOS NEXT 优雅的处理 Promise await异常

优雅的处理HarmonyOS NEXT 中的 async/await异常捕获,优雅的处理鸿蒙纯血版 中的 async/await异常捕获,优雅的处理鸿蒙 中的 async/await异常捕获

冉冉同学的专栏 745

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 三)

自定义组件的创建:自定义组件的实例由ArkUI框架创建。初始化自定义组件的成员变量:通过本地默认值或者构造方法传递参数来初始化自定义组件的成员变量,初始化顺序为成员变量的定义顺序。如果开发者定义了aboutToAppear,则执行aboutToAppear方法。在首次渲染的时候,执行build方法渲染系统组件,如果有自定义子组件,则创建自定义组件的实例。在执行build()函数的过程中,框架会观察每个状态变量的读取状态,将保存两个map:状态变量 -> UI组件(包括ForEach和if)

爱吃土豆丝的打工人的博客 3829

鸿蒙Promise对象,asyncawait

本文介绍了鸿蒙ArkTSPromise用法

Strive443的博客 838

鸿蒙OS开发实例:【ArkTS类库异步并发async/await

async/await是一种用于处理异步操作的Promise语法糖,使得编写异步代码变得更加简单和易读。通过使用async关键字声明一个函数为异步函数,并使用await关键字等待Promise的解析(完成或拒绝),以同步的方式编写异步操作的代码。async函数是一个返回Promise对象的函数,用于表示一个异步操作。在async函数内部,可以使用await关键字等待一个Promise对象的解析,并返回其解析值。

鸿蒙的技术博客 1122

async/await 的理解和用法

async/await是什么 async/await 是ES7提出的基于Promise的解决异步的最终方案。 async async是一个加在函数前的修饰符,被async定义的函数会默认返回一个Promise对象resolve的值。因此对async函数可以直接then,返回值就是then方法传入的函数。 // async基础语法 async function fun0(){ console.log(1); return 1; } fun0().then(val=>{ conso

qq_42941302的博客 18万+

ArkTS并发-异步并发 (Promiseasync/await)

函数内部可包含零个或多个await关键字,await会暂停执行,直到关联的Promise完成状态转换(fulfilled或rejected)。使用async关键字声明异步函数,并使用await关键字等待Promise的解析(fulfilled或rejected),以同步方式编写异步操作的代码。Promise是一种用于处理异步操作的对象,可将异步操作转换为类似同步操作的风格,便于代码编写和维护。async/await是用于处理异步操作的Promise语法糖,使编写异步代码更加简单和易读。

A2224853393的博客 222

行业变革下的功能安全落地痛点3:高阶智驾安全责任转移 —— 从 “人为中心” 到 “机器主责” 的产业阵痛

文章围绕高阶智驾(L3 级)落地挑战,探讨安全责任从 “人控” 向 “机控” 转移的本质、技术短板导致的责任模糊、全球法规实践及技术 - 法规 - 保险的破局路径。

my9111526 108

黑雨——POP3邮箱破解

一个POP3邮箱破解工具,使用深度算法、广度算法、多线程深度算法等一系列先进的算法达到快速的破解,是个不错的POP3破解器

上一篇: [LeetCode]1.两数之和
下一篇: 解决npm下载太慢问题【镜像】
小狗敲代码
博客等级 码龄5年 93粉丝 · 11原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值