//加载远程的图片
export let loadRemotePic = function (fileName: string, callbackFunc?: (sf: SpriteFrame, err: any) => any) {
let remoteUrl = "http://www.aa.com"
assetManager.loadRemote<ImageAsset>(remoteUrl, function (err: Error, imageAsset: ImageAsset) {
let sf = new SpriteFrame();
let texture = new Texture2D();
texture.image = imageAsset;
sf.texture = texture;
if (callbackFunc) {
callbackFunc(sf, err);
}
});
}
如上,我不希望assetManager.loadRemote采用回调的方式加载头像,代码一多容易陷入地狱级别的死亡回调,实际上目前我的回调层数已经超过6层,但是即使只有6层,我也快难以维护,非常头大,有老友知道如何改写让他支持async、await这样的同步写法,而不是采用回调方式吗?
我想过很多种改法,但是发觉还是得官方支持才行,不然没法封装成async的函数,是我ts能力不足还是什么原因?
我的诉求是希望改成这样去调用:
async function getTitle(url) {
let response = await fetch(url);
let html = await response.text();
return html.match(/<title>([\s\S]+)<\/title>/i)[1];
}
getTitle('https://tc39.github.io/ecma262/').then(console.log)
// "ECMAScript 2017 Language Specification"

