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 位参与者