我使用react-native-fs
从服务器下载文件并阅读本地系统。一切都很好,但我有一个问题,我不知道如何在下载文件时发现失败。
例如,如果用户丢失网络,我该如何捕获?我想要的是向用户显示一条警告消息,隐藏我显示的下载百分比消息并删除不完整的下载。
我有以下代码,但catch
从不运行:
const result = FS.downloadFile({
fromUrl: url, // URL to download file from
toFile: `${CACHE_DIR}/${name}`, // Local filesystem path to save the file to
background: false,
progressDivider: steps,
begin: onBegin,
progress: onProgress,
readTimeout: 2 * MIN,
connectionTimeout: 30 * SEC,
});
return result.promise
.then(() => {
this.index[name] = {
name,
path: `${CACHE_DIR}/${name}`,
size: 0,
};
return this.index[name];
})
.catch((error) => {
console.log('error!', error); // <-- This code never runs :(
// Show and alert message to the user...
// Hide downloading message
// Delete incomplete download file
});
目前我只专注于Android,但稍后我会继续使用iOS。我想知道iOS上是否也会出现同样的问题,或者只是在Android上。
非常感谢你的帮助。
答案 0 :(得分:0)
您可以使用then
return result.promise
.then(() => {
this.index[name] = {
name,
path: `${CACHE_DIR}/${name}`,
size: 0,
};
return this.index[name];
}, (error) => {
console.log('error!', error); // <-- This code never runs :(
// Show and alert message to the user...
// Hide downloading message
// Delete incomplete download file
});