Quantcast
Channel: Cocos中文社区 - 最新主题
Viewing all articles
Browse latest Browse all 90492

在 Cocos Creator 实现协程?——源码分享

$
0
0

https://gitee.com/afrx_s_projz/cocos_creator_start_coroutine

原理非常简单,其实就是用 yield 关键字来实现的。
在 lateUpdate 中来调用。

为了解释方便,我自己写了 7 个小例子,一步一步解释怎么实现协程的逻辑。

之所以自己撑得没事干,弄了个协程出来,
就是因为回调函数是在是太头疼了。
官方的 API 又不能直接使用 async、await 形式(需要通过 Promise 包装一下),所以只好自己鼓捣出一个怪物来……

在实际项目中已有应用,确实减少了很多回调嵌套。


【2022/05/22 最新编辑】
坛子里的朋友强烈提醒我没用过 Promise,所以我在最后一个例子中补充了 async、await + Promise 的形式,来给自己挽回点面子。

不过这倒是小事儿……

我又重新思考了一下 MyCoroutine 那段代码,它的一个特征是“模拟多线程”。

消除回调只是其中一个功能而已。

不过,多线程这玩意儿,本身就是个怪物。别碰!

想想自己为什么会鼓捣个怪物出来?

大概是因为写 Java 和 Golang 比较多,习惯开线程的思路。

就当猎奇吧……

8 个帖 - 3 位参与者

阅读整个主题


Viewing all articles
Browse latest Browse all 90492

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>