这是我的代码:
let promise = new Promise(( resolve ) => {
let dataArray = d3.csvParse(csvData);
return resolve(dataArray);
});
promise.then(( dataArray: Array<Object> ) => {
return _(dataArray).transform(( result, item, name ) => {
result[ item.district ] = result[ item.district ] || {};
result[ item.district ][ name ] = item;
return result;
}).value();
}).then(data => data.map(d => console.log(d))); // not loading
我正在使用 d3 解析 csv 文件。解析完成后,我将解析 Promise 并尝试对返回的数组执行一系列 lodash 操作。我尝试链接变换和映射的方法,还尝试使用 _.chain(...)
强制链接。
控制台不会返回任何错误,我可以在 then
部分记录数据数组。
任何建议都将受到高度赞赏。
最佳答案
map 旨在与数组一起使用。在这里,您的 result
数组不包含任何项目,但包含与现有地区一样多的属性。
result[ item.district ] = result[ item.district ] || {};
因此,您可以使用 Object.keys(data).map() 而不是 map:
.then(data => {
Object.keys(data).map(function(elem) { console.log(data[elem]); });
})
https://runkit.com/587b513664a8d4001433714a/587b63902c363d0014cc3964
关于javascript - 为什么map函数在promise之后没有执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41660656/