Я использую модуль узла запрос для загрузки нескольких файлов в приложении Electron.Но я сталкиваюсь с периодически возникающей проблемой, когда выключаю и снова включаю беспроводную сеть во время загрузки.например,
Если я загружаю 4 файла и выключаю и включаю беспроводную связь (с интервалом ~ 20 секунд), я вижу
- 2 файла, успешно загруженных
- 1 файл будет поврежден
- 1 файл получит нулевой ответ (что приведет к зависанию моего приложения, пока я жду ответа)
Я также видел
- все 4 файла успешно загружены
- 2 - 3 последующих файла загружены
- Затем 1 файл получает нулевой ответ (снова вызывая зависание в моем приложении на этом конкретном обещании)
В попытке обойти это, я установил тайм-аут по запросу на 20 секунд.Это приводит к тому, что время загрузки файлов не удивительно.Но когда сеть снова включается, она не восстанавливается.т.е. все загрузки продолжаются по таймауту.В то же время я могу взять URL-адреса самостоятельно и загрузить с помощью браузера.Но приложение по-прежнему находится в «плохом состоянии».
Что может вызвать эти проблемы?Какие-либо советы по отладке помимо включения отладки в запросе?
Код, который я использую
const stream = request(file.uri, {timeout: 20000})
.on('error', (error) => {
console.error(`Failure downloading ${timeMarker} with error ${error}`);
resolve();
})
.pipe(file.decipher)
..... etc