itinance/react-native-fs

Cancel all downloads

Open

#297 ouverte le 22 mai 2017

Voir sur GitHub
 (1 commentaire) (0 réactions) (0 assignés)C# (919 forks)batch import
help wantedquestion

Métriques du dépôt

Stars
 (4 629 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

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

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!

Guide contributeur