Я хочу отменить загрузку файлов при нажатии кнопки отмены.
Что я пытаюсь сделать?
Я загружаю файлы, отправляя запрос на сервер, который показывает индикатор выполнения в зависимости от размера загруженного файла. Теперь, если пользователь нажимает кнопку отмены, он должен прекратить загрузку файлов. Я не знаю, как отменить запрос. У меня установлено состояние load_cancel, которое устанавливается в значение true при нажатии кнопки отмены на методе componentwillunmount. Состояние load_cancel установлено в значение false.
Ниже приведен код,
this.state {
load_cancel: false,};
componentDidMount() {
if (this.props.item) {
this.load_item_data();
}
}
on_load_cancel = () => {this.setState({load_cancel: true;});
load_item_data = () => {
const props = this.props;
this.file_download_status = {};
if (this.on_item_changed) {
this.on_item_changed();
}
const item_changed = new Promise((resolve) => { this.on_item_changed =
resolve; });
const abort_loading = Promise.race([item_changed, this.unmount]);
item.load(props.item.id, gl, this.update_download_progress,
abort_loading).then((result) => {
this.files = result.files;
this.setState({
item_download_done: true,
});
client.add_item_view(props.item.id, abort_loading);
});
{props.item &&
<ProgressBar
on_load_cancel = {this.load_cancel}
/>}
Ниже находится кнопка отмены в компоненте Progressbar,
<button onClick = {props.on_load_cancel}>Cancel</button>
Может ли кто-нибудь помочь мне с этим? Спасибо.
не могу выложить полный файл :(
что вы используете для отправки запроса ajax? если это библиотека, посмотрите в документации, как ее отменить, например stackoverflow.com/questions/38329209/…



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


можешь выложить полный файл? кажется, что некоторые важные биты отсутствуют