【发布时间】:2016-11-20 12:46:29
【问题描述】:
我已经嵌套了数组,我能够检索第二级数组的承诺,但不知道一旦顶级完成后如何实现 then。
result.forEach(function(entity){ // outer list ???
return Promise.all(entity.urls.map(function(item){
return requestURL(item.href);
}));
});
例如,如果results 有两个或更多项目,并且每个item 有10 个或更多的url 来获取,我们将如何为所有承诺实现then 或[Promise.all][1]。请使用本机解决方案。
基本上以正确的方式处理嵌套的承诺数组。
数据结构:
var result = [
{
urls: [
{href: "link1"},
{href: "link2"},
{href: "link3"}
]
},
{
urls: [
{href: "link4"},
{href: "link5"},
{href: "link6"}
]
}
];
【问题讨论】:
-
为什么不将数组数组展平为单个数组,然后做一个promise.all?
-
是的,扁平化是解决方案,但是如何在使用迭代器模式的同时以一种优雅且噪音较小的方式做到这一点。我可以创建一个数组并将项目推送到它并在最后做一个
Promise.all,但是让我们看看是否有一个优雅的方法 -
“我已经嵌套了数组”你能在问题中包含数组的文本吗?
-
添加数据结构
标签: javascript node.js promise