你是要这样的效果吗?
export type StdCallback = (err: Error, res?: any) => void;
export type PromiseCallFunc = (callback: StdCallback, ...args: any[]) => void;
export type ProgressCallFunc = (completedCount: number, totalCount: number, item: any) => void;
/**
* @method 动态加载资源的promise对象
* @param {string} url 资源路径
* @param {cc.Asset} type 加载资源类型
* @param {ProgressCallFunc} callback 资源加载回调
*/
function promisifyLoadRes(url: string, type: typeof cc.Asset, callback?: ProgressCallFunc): any {
return new Promise((resolve, reject) => {
try {
cc.loader.loadRes(url, type, callback, (err, res) => {
if (err) {
reject(err);
} else {
resolve(res);
}
});
} catch (err) {
reject(err);
}
});
}
export default {
promisify: promisify,
promisifyLoadRes: promisifyLoadRes,
};