Promise Promise.all() 案例

onload(){

    new Promise((resolve, reject) => {

        setTimeout(() => {

            console.log("1111111");

            this.func(resolve);//还没完成

            // resolve(1);//执行了它

        }, 5)

    }).then(() => {

        console.log("99999999999999");

    })

}

func(re1) {

    new Promise((resolve, reject) => {

        setTimeout(() => {

            this.func2(resolve);

        }, 10)

    }).then(() => {

        re1();

    })

}

func2(re2) {

    // new Promise((resolve, reject) => {

    // }).then(() => {

    //     console.log("222222222222");

    //     re2();

    // })

    let promises: Promise<void>[] = [];

    let obj = {

        n: 1

    }

    promises.push(new Promise((resolve, reject) => {

        cc.tween(obj).to(2, { n: 10 }).call(() => {

            resolve();

            console.log("播放动画");

        }).start();

    }));

    promises.push(new Promise((resolve, reject) => {

        cc.tween(obj).to(2, { n: 10 }).call(() => {

            console.log("播放动画");

            resolve();

        }).start();

    }));

    Promise.all(promises).then(() => {

        console.log("33333333");

        re2();

    })

}

有个问题就是有些需求需要中途退出promise,翻了半天没找到中途退出或者取消promise的方法,有些个人实现是通过注册回调在回调里面调用reject但是看起来不怎么优雅

直接resolve();就结束了
reject 也是可以