Я проходил изменения в d3 версии 5 здесь: https://github.com/d3/d3/blob/master/CHANGES.md
Одним из наиболее важных изменений в этой версии была загрузка внешних данных csv / tsv / json. D3 теперь загружает данные как обещание, а не как XHR. Следовательно, процесс загрузки данных будет меняться во многих отношениях (обратный вызов, обработка ошибок и т. Д.).
Цитирование по вышеуказанной ссылке:
D3 теперь использует Promises вместо асинхронных обратных вызовов для загрузки данных. Обещания упрощают структуру асинхронного кода, особенно в современных браузерах, которые поддерживают async и await.
Например, чтобы загрузить файл CSV в v4, вы можете сказать:
d3.csv("file.csv", function(error, data) {
if (error) throw error;
console.log(data);
});
In v5, using promises:
d3.csv("file.csv").then(function(data) {
console.log(data);
});
Обратите внимание, что вам не нужно сбрасывать ошибку - обещание будет отклонено
автоматически, и вы можете обещать. поймать при желании.
Что означают вышеприведенные утверждения? Я не очень хорошо знаком с тем, как работают html-запросы (XHR, обещания), поэтому я хотел знать, каковы причины этого изменения и как разработчику, как это улучшает функциональность загрузки данных.
Заранее спасибо за помощь.