kotlin—— withTimeoutOrNull的介绍和使用场景

embedded/2024/9/24 10:17:23/

withTimeoutOrNull 是 Kotlin 协程库中的一个非常有用的函数,它允许你在指定的时间内执行一个代码块,如果在指定的时间内代码块没有执行完毕,那么它会返回 null,而不是抛出一个异常。这个函数在处理可能需要较长时间完成的操作,但又不想让程序因为等待这个操作而阻塞的场景中非常有用。 

withTimeoutOrNull使用:

 fun performDatabaseQuery(): String {delay(1500)return "Query result"}fun main() {runBlocking {val result = withTimeoutOrNull(1000.milliseconds) {performDatabaseQuery()}if (result == null) {println("Database query timed out.")} else {println(result)}}}

 结合suspendCancellableCoroutine来使用:

@OptIn(ExperimentalCoroutinesApi::class)suspend fun main(): String = suspendCancellableCoroutine { ctn ->runBlocking {val result = withTimeoutOrNull(1000) {delay(900) // 这里的时间不一定是900ms"操作完成"}if (result == null) ctn.resume("操作超时") {} else ctn.resume(result) {}}}// 调用lifecycleScope.launch {val result = main()println("1111 : $result")}


http://www.ppmy.cn/embedded/116046.html

相关文章

在 macOS 上安装 FFmpeg 的详细指南

FFmpeg 是一个强大的多媒体框架,可以用于录制、转换和流式传输音频和视频。无论你是视频编辑工作者,还是想要处理音频文件,FFmpeg 都是一个不可或缺的工具。本文将介绍在 macOS 上安装 FFmpeg 的几种方法。 方法 1: 使用 Homebrew 安装 FFmp…

【uni-app】小兔鲜项目-基础架构-请求和上传文件拦截器

注意事项 uni.request 请求封装 请求和上传文件拦截器 uniapp 拦截器: uni.addInterceptor 接口说明:接口文档 实现需求 拼接基础地址设置超时时间添加请求头标识添加 token 参考代码 // src/utils/http.ts// 请求基地址 const baseURL https://pca…

provide,inject父传子

这个方法传递子参数,可以让所有的子组件获取到,不能子组件传递给父组件 父组件 说下大概思路,导入privode,然后使用privode方法,有点像redis,key value形式存值,子组件可以通过key来获取你要传…

计算机毕业设计之:基于微信小程序的中药材科普系统(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Redis数据结构之哈希表

这里的哈希表说的是value的类型是哈希表 一.相关命令 1.hset key field value 一次可以设置多个 返回值是设置成功的个数 注意,哈希表中的键值对,键是唯一的而值可以重复 所以有下面的结果: key中原来已经有了f1,所以再使用hse…

计算机科学(学习笔记四)

早期的编程方式 纸片打孔等方法 汇编语言 编程语言发展史 汇编语言也叫机器语言,是计算机的母语。但01不便于人们操作,人们为了方便操作,会输入文字指令,通过汇编器自动转成二进制指令。 但汇编码和底层硬件仍息息相关&#xff…

网安新声 | 黎巴嫩BP机爆炸事件带来的安全新挑战与反思

网安加社区【网安新声】栏目,汇聚网络安全领域的权威专家与资深学者,紧跟当下热点安全事件、剖析前沿技术动态及政策导向,以专业视野和前瞻洞察,引领行业共同探讨并应对新挑战的策略与可行路径。 9月17日,黎巴嫩境内发…

抓机遇,促发展——2025第十二届广州国际汽车零部件加工技术及汽车模具展览会

新能源时代,电动化、智能化正在重塑全球汽车市场格局。中国自主品牌新能源汽车的市占率不断提升、头部效应初显,更有机会带动相关供应链企业成长。中国的零部件企业有望抓住变局下的机会,在新一轮竞争中崛起。 智能电动车时代,汽车…