Skip to content

Instantly share code, notes, and snippets.

@dzNavitski
Created July 11, 2017 09:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dzNavitski/30b147d2bad22f3cb208f1977777c08e to your computer and use it in GitHub Desktop.
Save dzNavitski/30b147d2bad22f3cb208f1977777c08e to your computer and use it in GitHub Desktop.
const uploadDocumentEpic = action$ =>
action$.ofType(UPLOAD_DOCUMENT).switchMap(action => {
const {id, data} = action.payload
const sub = new Subject()
const requester = Observable.fromPromise(
axios({
url: 'https://api.foo.com',
data: {
file: data
},
onUploadProgress: progressEvent => {
sub.next(progressEvent.loaded * 100 / progressEvent.total)
}
})
)
return Observable.merge(
requester.map(() => ({
type: UPLOAD_COMPLETE,
id
})),
sub.map(progress => ({type: PROGRESS_EVENT, payload: progress}))
)
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment