itinance / itinance/react-native-fs

Cancel all downloads

Open
#297 1 comment 0 reactions 0 assignees View on GitHub
help wanted question
Dominant language
C++
Stars
5k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

Hi everyone,

first of all, thank you all for providing and maintaining RNFS.

I am currently developing an app that allows users to download modules which consists of a lot of files (~300).

What I got so far (simplified version):

```
return await Promise.all(contents.map(async (file) => {
await RNFS.downloadFile({
fromUrl: basedir + '/' + file,
toFile: moduleFolder + '/' + file,
begin: (job) => {
console.log('Begin job: ' + job.jobId);
}
})
.promise.then((job) => {
console.log('Job done: ' + job.jobId);
})
.catch((err) => {
console.log(err);
});
}))
.then(() => {
console.log('Download complete.');
})
.catch((err) => {
console.log(err);
});
```

Now, what I can't quite wrap my head around yet is how to implement a function that stops all pending downloads.

I tried cancelling each download with stopDownload(job.jobId) as soon as the download begins, but then the debugger starts throwing a lot of errors like the following:

[https://cloud.githubusercontent.com/assets/17614778/21006568/b3e050c8-bd39-11e6-8ba1-c6fa51f5b1b4.png](url)

Also, this approach somehow doesn't feel like the right way to handle the issue.

I also tried adding download promises recursively, and experimented with Bluebird and cancellable promises, but haven't succeeded yet.

Any help is greatly appreciated. Thank you!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.