最佳答案
我有一个类似数组的结构,它公开异步方法。异步方法调用返回数组结构,从而公开更多的异步方法。我正在创建另一个 JSON 对象来存储从这个结构中获得的值,因此需要注意跟踪回调中的引用。
我已经编写了一个蛮力解决方案,但我想学习一个更惯用或干净的解决方案。
这里有一些部分代码-
var jsonItems = [];
items.forEach(function(item){
var jsonItem = {};
jsonItem.name = item.name;
item.getThings().then(function(things){
// or Promise.all(allItemGetThingCalls, function(things){
things.forEach(function(thing, index){
jsonItems[index].thingName = thing.name;
if(thing.type === 'file'){
thing.getFile().then(function(file){ //or promise.all?
jsonItems[index].filesize = file.getSize();