Как можно отменить «извлечение данных» и «использование данных» при использовании D3. js promise.all
?
Например, если я получаю два CSV-файла, используя D3. js promise.all
как показано ниже, я могу успешно получить доступ к данным в области действия then(function(data) {
var file1 = "file1.csv"
var file2 = "file2.csv"
Promise.all([
d3.csv(file1),
d3.csv(file2)
]).then(function(data) {
var file1 = data[0];
var file2 = data[1];
// I can then use data in var file1 and file 2 in charts etc
});
Однако я бы хотел отделить «извлечение данных» и «использование данных», поэтому у меня нет извлекать все файлы данных, когда я хочу динамически изменить способ использования данных.
Например, скажем, у меня есть диаграмма, в настоящее время находящаяся в области действия then(function(data) {
, и я хочу динамически изменить, какой из двух promise
наборы данных, которые он использует.
Как я могу просто ссылаться на данные promise
как функцию или объект из другой функции, которая не входит в ее область действия?
Что-то вроде наличия двух кнопок для динамического изменения данных диаграммы из файла1 к файлу 2, который будет ссылаться на promise
данные как объекты.
<html>
<body>
<input type="button" onclick="getfile2();" value="file1">
<input type="button" onclick="getfile2();" value="file2">
<script src="d3data.js"></script>
<div id="mychart"></div>
</body>
</html>