如何等待多个cc.resources.load全部回调之后再执行后续操作

1.cc.resources.load是异回调的,不能即时返回结果,

.如何能做到像 frames[i] = new cc.SpriteFrame(cc.url.raw(path+userid+i_xh+".png"));(2.4前可以用,之后不能用)
像cc.url.raw那样能即时返回结果,

因为要动态创建多个 clip ,每个clip需要加载多个SpriteFrame,升级到2.4后,使用多个cc.resources.load加载SpriteFrame后即时创建的是空的 SpriteFrame,需要等一段时间(另外一个地方调用才能创建有效的clip)如何能解决?
(是否有等待函数,检测加载完成后才执行后续代码)

写个Promise把load包起来,再使用Promise并行处理

加个计数就好了
count = 0

count ++
cc.resources.load(xxx,(err,xxx)=>{
if(err) return
count–
})

当count为零时就说明都加载完了

你是要这样的效果吗?

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,
};

用的是累加的 提交了N个,回调累计N个就执行下一步操作,没累计够就一直等待无结果,是有点问题

楼上 d119的好像能把多个回调结果进行封装再触发

可以搜一下promise.all应该可以解决的