如何在解决promise之前确保所有数据都被推送到数组?

时间:2017-01-15 10:28:24

标签: javascript d3.js promise

这是我的代码:

let promise = new Promise(( resolve, reject ) => {
            let dataArray: Array<Object> = [];
            d3.csvParse(csvData, ( data, error ) => {
                if ( error ) reject('error occurred while parsing csv');
                dataArray.push(data);
            });
            resolve(dataArray);
        });

我正在使用d3来解析从服务器获取的csv文件。 我基本上要做的是确保在返回promise / object之前完成解析,所以我将它传递给另一个函数(此处未显示)。谢谢

1 个答案:

答案 0 :(得分:2)

我已阅读csvParse的文档,您可以使用此

简单地更改代码
dataArray=d3.csvParse(csvData);
resolve(dataArray);

您不需要将每行添加到数组中,因为csvParse将在完成解析时返回一个数组