[LayaAir3]LayaIDE环境运行异步方法出现异常
这段异步加载代码运行异常,没有加载完就跳出异步往下执行了,就是日志3会比日志2先打印了,资源是正常的,会是什么原因?
do() {
let tex;
let f = async()=>{
console.log("1");
tex = await this.loadTexAsync(data);
console.log("3");
}
f();
}
async loadTexAsync(data: ArrayBuffer): Promise<Laya.Texture> {
return new Promise((resolve, reject)=>{
Laya.loader.load(url, Laya.Handler.create(this, (tex:any)=>{
if(!tex) reject(null);
console.log("2");
resolve(tex);
}), null, Laya.Loader.IMAGE);
});
}
do() {
let tex;
let f = async()=>{
console.log("1");
tex = await this.loadTexAsync(data);
console.log("3");
}
f();
}
async loadTexAsync(data: ArrayBuffer): Promise<Laya.Texture> {
return new Promise((resolve, reject)=>{
Laya.loader.load(url, Laya.Handler.create(this, (tex:any)=>{
if(!tex) reject(null);
console.log("2");
resolve(tex);
}), null, Laya.Loader.IMAGE);
});
}
没有找到相关结果
已邀请:
1 个回复
layabox
赞同来自:
从代码上,因为异步操作(`this.loadTexAsync(data)`) 需要一些时间来完成资源加载,所以 `console.log("3")` 作为立即执行的同步代码,先于异步操作完成之前执行并打印 "3"。并没有什么不正常。