Я использую реактивную нативную файловую систему для загрузки контента из CMS в реактивное приложение. Идея состоит в том, чтобы использовать приложение для обслуживания онлайн-контента / веб-сайта для автономного использования.
Приложение работает на Android без каких-либо ошибок, но на iPad (ios 11.4) загрузка никогда не заканчивается.
Вот часть файла App.js, который я использую с функцией, которая выдает ошибку на iPad:
import React, {Component} from 'react'
import {
Platform,
StyleSheet,
Text,
View,
WebView,
Button,
Alert,
NetInfo,
StatusBar,
Modal,
TouchableOpacity,
Image
} from 'react-native'
import RNFS from 'react-native-fs'
export default class App extends Component {
const path = RNFS.DocumentDirectoryPath + '/assets/' + saveAs
let pp = path.split('/')
pp.pop()
return RNFS.mkdir(pp.join('/'), {NSURLIsExcludedFromBackupKey: true}).then(() => {
const download = RNFS.downloadFile({
fromUrl: url,
toFile: path,
discretionary: true,
progress: (res) => {
const tmp = this.state.bytesWritten
tmp[res.jobId.toString()] = res.bytesWritten
this.setState({bytesWritten: tmp})
},
begin: (res) => {
this.setState({
contentLength: this.state.contentLength + res.contentLength
})
},
readTimout: 15000
})
return download.promise.then((res) => {
return res;
})
.catch((error) => {
console.warn('An error occured while downloading: ' + error);
console.warn('Current URL: ' + url);
});
})
.catch ((error) => {
console.warn('An error occured while creating directory: ' + error);
});
}
Функция downloadAndSave вызывается внутри другой функции, например:
let pr = []
// d are the files that need to be downloaded, around 250-300
d.forEach((elem) => {
pr.push(this.downloadAndSave(elem.name, elem.saveAs));
})
return Promise.all(pr);
Ошибки всегда возникают из блока catch «Произошла ошибка при загрузке:».
Выдающаяся ошибка отличается, а также количество затронутых URL.
Сообщения об ошибках, которые происходят (переведены, поэтому они могут быть немного отключены):
- Запрос / Процесс не может быть завершен
- Время ожидания запроса
- POSIX-Ошибка -9805 - Неизвестная ошибка: -9805
Ошибка возникает после загрузки около 50-70% файлов, а затем никогда не завершается, но останавливается на отметке 80-90%.
Мой вопрос: связана ли проблема с тайм-аутом или возможна ли обратная связь?
Кто-нибудь еще сталкивался с такой проблемой с реакцией native fs или кто-то знает, как решить эту проблему.
Боюсь, я даже не могу точно определить проблему.
Любая помощь очень ценится!