itinance/react-native-fs

Cancel all downloads

Ouverte

#297 ouverte le 22 mai 2017

 (1 commentaire) (0 réaction) (0 personne assignée)C++ (1 012 forks)batch import
help wantedquestion

Métriques du dépôt

Stars
 (5 043 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

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