如何在cocos里使用async/await?

管线走起来

终于知道为什么很多公司都是java8了 :sweat_smile:

参考你的代码写的,await button click 事件。

const {property, ccclass} = cc._decorator;

@ccclass
export default class TestAsync extends cc.Component{
    @property(cc.Button)
    btn_click : cc.Button = null;

    onLoad(){
        cc.assert(this.btn_click != null);
        this.test();
    }

    async test() {
        cc.log("begin wait");
        await this.wait_for_click(this.btn_click);
        cc.log("end wait");
    }

    async wait_for_click(btn: cc.Button): Promise<void>{
        return new Promise<void>( (resolve, reject) => {
            const on_click = () => {
                btn.node.off('click', on_click);
                resolve();
            };
            btn.node.on('click', on_click);
        });
    };
}
1赞

async await 不用区别是否在cocos 里用吧,这一块不熟可以看看 https://es6.ruanyifeng.com/ 有一章节详细的讲了这个语法的用处,他存在自然有他存在的道理,看完了你就能自己解答你问的三个问题了

确实是这么回事,但是用await 的话能让代码变得更直观一点,以前套娃的逻辑可以变成并排的代码了,更容易让人看懂