当前位置:网站首页>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异步详细的代码程序 可以看看这篇文章
边栏推荐
- 【LeetCode】Summary of Two Pointer Problems
- 基于Appian低代码平台开发一个SpaceX网站
- 2022牛客暑期多校训练营5(BCDFGHK)
- 2022 Niu Ke Summer Multi-School Training Camp 5 (BCDFGHK)
- d枚举生成位
- uniapp动态实现滑动导航效果demo(整理)
- 仿网易云音乐小程序-uniapp
- DNS常见资源记录类型详解
- Statistical words (DAY 101) Huazhong University of Science and Technology postgraduate examination questions
- 工业物联网 —— 新型数据库的召唤
猜你喜欢
随机推荐
【云原生--Kubernetes】调度约束
Cython
First, the basic concept of reptiles
2022牛客暑期多校训练营5(BCDFGHK)
入门3D游戏建模师知识必备
#yyds dry goods inventory #Switching equipment serious packet loss troubleshooting
【SSR服务端渲染+CSR客户端渲染+post请求+get请求+总结】
基于深度学习的路面坑洞检测(详细教程)
KT6368A蓝牙的认证问题_FCC和BQB_CE_KC认证或者其它说明
Mysql based
Flutter启动流程(Skia引擎)介绍与使用
2022 Niu Ke Summer Multi-School Training Camp 5 (BCDFGHK)
【LeetCode】双指针题解汇总
Statistical words (DAY 101) Huazhong University of Science and Technology postgraduate examination questions
工业物联网 —— 新型数据库的召唤
Pytorch分布式训练/多卡/多GPU训练DDP的torch.distributed.launch和torchrun
What is next-generation modeling (with learning materials)
Handwritten Distributed Configuration Center (1)
[Cloud Native--Kubernetes] Pod Controller
OpenCV:10特征检测








