基于ES6 API,主要用到了 await async Promise 三个API
TypeScript脚本代码:
async start()
{
await this.loadTest();
console.log("this is second print.");
}
async loadTest()
{
let gamePromise = this.loadAsync();
await gamePromise;
}
/**
* Pormise : 无法取消 Promise ,一旦新建它就会立即执行,无法中途取消。
*/
loadAsync() : Promise<void>
{
return new Promise<void>((resolve, reject) => {
cc.loader.loadRes("test1", cc.RawAsset, (error: Error, asset) => {
if (error)
{
console.error("load error"+ error.message);
}
else
{
console.log("this is first print.");
}
resolve();
});
});
}
输出:
this is first print.
this is second print.
说明:
1、不推荐大量使用,同步操作会导致卡顿问题。