Skip to content

Instantly share code, notes, and snippets.

@dvallin
Created November 29, 2017 16:46
Show Gist options
  • Save dvallin/1e8353936f20ccee7978e6eb098734b1 to your computer and use it in GitHub Desktop.
Save dvallin/1e8353936f20ccee7978e6eb098734b1 to your computer and use it in GitHub Desktop.
function unwrapAxiosResponse<T>(request: AxiosPromise<object>, responseMapper: (object) => T): Promise<T> {
return new Promise<T>((resolve, reject) => {
request
.then(response => {
resolve(responseMapper(response.data))
})
.catch(error => {
reject(error)
})
});
}
export function fetchTasks(): Promise<Array<Task>> {
return unwrapAxiosResponse(axios.get('/api/tasks', config), (object) => {
return object.map(task => new Task(task.id, task.title))
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment