A crocks Async wrapper for axios. Allows consumers to take advantage of the "lazy" data type while keeping a familiar API.
asyncios
accepts the same configuration arguments as the underlying axios function. See the axios documentation for more details.
// GET request
asyncios({ method: 'GET', url: '/user?ID=12345' })
.fork(
error => console.log(error),
response => console.log(response)
)
// same GET request, but using `params` configuration
asyncios({ method: 'GET', url: '/user', params: { ID: 12345 } })
.fork(
error => console.log(error),
response => console.log(response)
)
// POST request
asyncios({
method: 'POST',
url: '/user?ID=12345',
data: { firstName: 'Fred', lastName: 'Flinstone' },
})
.fork(
error => console.log(error),
response => console.log(response)
)
Async
-style cancellation is supported. See the crocks doucmentation for more details.
const cancel = asyncios({ method: 'GET', url: '/user?ID=12345' })
.fork(
error => console.log(error),
response => console.log(response),
() => console.log('cancelled!')
)
cancel()
axios
's cancellation token is also supported. Take note of the different behaviors--while cancelling via crocks will invoke fork
's third "cancel" callback, cancelling via axios will invoke fork
's first "rejected" callback. See axios's documentation for more details.
const source = axios.CancelToken.source()
asyncios({
method: 'GET',
url: '/user?ID=12345',
cancelToken: source.token
})
.fork(
error => {
if (axios.isCancel(error)) console.log(error.message)
else { /* handle error */ }
},
response => console.log(response)
)
source.cancel('My cancel message')
Thanks to the fine people who work on both axios & crocks.
Pretty sure is spencerfdavis's fault.