深层递归异步回调处理方案

这两天在用oss的时候,用脚本去部署前端静态资源的时候,需要删除远端的文件操作
这里就需要递归文件删除object

var list = [],
	step = 0;
async function listDir(dir) {
	step++;
	let result = await client.list({
		prefix: dir,
		delimiter: '/'
	});
	if (result.objects && result.objects.length) {
		result.objects.forEach(function(obj) {
			list.push(obj.name);
		});
	}
	if (result.prefixes && result.prefixes.length) {
		result.prefixes.forEach(function(subDir) {
			listDir(subDir);
		});
	}
	step--
	if (step == 0) {
		console.log(list)
	}
}

listDir('path1/path2/')

成功获取所有object
这种方案适用于未知总数量,多层异步回调

你可能感兴趣的:(node,js,javascript)