当前位置:网站首页>uinty lua 关于异步函数的终极思想
uinty lua 关于异步函数的终极思想
2022-08-04 23:59:00 【接啊是哦ida】
相信很多人都被回调地狱折磨过 ,
比如我们想写一段逻辑,播放A动画 A动画完毕之后 进行B动画 B动画完毕之后进行C动画
这时候 一般我们的逻辑是这样的
function Play()
playA()
end
function PlayA()
--do 动画结束之后播放B
end
function PlayB()
--do 动画结束之后播放C
end
function PlayC()
--end
end
当代码流程比较短的时候 感觉还可以 但是 比较长的时候
- 读起来很困难 需要一步跳 才知道 他接下来想干什么
- 当要改顺序的时候 就很麻烦 需要将衔接的回调修改
–那么 以一种正常的思维应该是什么样的
我们其实是想这样的书写
这样写的好处就是 我们可以随意调换它们的顺序
阅读起来比较容易 看一个函数 就可以知道它最 终要做哪些事情
function Play()
playA()
PlayB() --等待A播放完播放B
PlayC() --等待B播放完播放C
end
function PlayA()
--do 动画结束 已结束 可以进行下一步
end
function PlayB()
--do 动画结束 已结束 可以进行下一步
end
function PlayC()
--end
end
可是lua中都是同步的 ,怎么实现可以等待一个函数结束之后 在进行下一个函数呢
lua中的协同函数 完美的解决了这个问题
我们可以这样
-- 将 Play 当成一些lua协同启动函数
function Play()
playA()
PlayB() --等待A播放完播放B
PlayC() --等待B播放完播放C
end
function PlayA()
--do 在动画结束事件中唤醒携程
--do 挂起携程
end
function PlayB()
--do 在动画结束事件中唤醒携程
--do 挂起携程
end
function PlayC()
--end
end
最后 lua异步详细的代码程序 可以看看这篇文章
边栏推荐
- Flutter启动流程(Skia引擎)介绍与使用
- 【云原生--Kubernetes】调度约束
- 性能测试如何准备测试数据
- Three tips for you to successfully get started with 3D modeling
- npm基本操作及命令详解
- Mathematical Principles of Matrix
- 论文解读( AF-GCL)《Augmentation-Free Graph Contrastive Learning with Performance Guarantee》
- [Cloud Native--Kubernetes] Pod Controller
- 小黑leetcode之旅:95. 至少有 K 个重复字符的最长子串
- What is next-generation modeling (with learning materials)
猜你喜欢

导入JankStats检测卡帧库遇到问题记录

Cloud native - Kubernetes 】 【 scheduling constraints

【LeetCode】矩阵模拟相关题目汇总

MAUI Blazor 权限经验分享 (定位,使用相机)

三大技巧让你成功入门3D建模,零基础小白必看

2022 Niu Ke Summer Multi-School Training Camp 5 (BCDFGHK)

The market value of 360 has evaporated by 390 billion in four years. Can government and enterprise security save lives?

Metasploit-域名上线隐藏IP

Basic web in PLSQL

学会反射后,我被录取了(干货)
随机推荐
LeetCode Hot 100
【七夕快乐篇】Nacos是如何实现服务注册功能的?
[CVA Valuation Training Camp] Financial Modeling Guide - Lecture 1
入门3D游戏建模师知识必备
VMware NSX 4.0 -- 网络安全虚拟化平台
OpenCV:10特征检测
MAUI Blazor 权限经验分享 (定位,使用相机)
三大技巧让你成功入门3D建模,零基础小白必看
Handwritten Distributed Configuration Center (1)
美团二面:Redis与MySQL双写一致性如何保证?
【LeetCode】矩阵模拟相关题目汇总
Vscode连接远程服务器(一套配置成功)
Uniapp dynamic sliding navigation effect demo (finishing)
小黑leetcode之旅:95. 至少有 K 个重复字符的最长子串
关于使用read table 语句
Cython
leetcode经典例题——单词拆分
uniapp horizontal tab (horizontal scrolling navigation bar) effect demo (organization)
一、爬虫基本概念
what is MVCC