Skip to content

Commit ad76c60

Browse files
committed
handle error
1 parent c317b75 commit ad76c60

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

Diff for: src/components/Result.vue

+8-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<h5 v-if="data && !loading">
77
<a class="button" @click="back">Back</a> {{ page }} / {{ totalPage }} <a class="button" @click="next">Next</a>
88
</h5>
9+
<p v-if="error">{{ error }}</p>
910
<table class="u-full-width" v-if="data && !loading">
1011
<thead>
1112
<tr>
@@ -39,7 +40,8 @@ export default {
3940
title: '',
4041
typing: false,
4142
loading: false,
42-
page: 1
43+
page: 1,
44+
error: ''
4345
}
4446
},
4547
subscriptions () {
@@ -56,9 +58,14 @@ export default {
5658
5759
return {
5860
data: Observable.combineLatest($q, $page, (q, page) => ({ q, page }))
61+
.do(() => { this.err = '' })
5962
.do(() => { this.loading = true })
6063
.do(({ q }) => { this.title = q })
6164
.flatMap(({ q, page }) => API.search(q, page))
65+
.catch((err) => {
66+
this.error = err.message || 'something went wrong :P'
67+
return Observable.of(null)
68+
})
6269
.do(() => { this.loading = false })
6370
}
6471
},

Diff for: src/services/api.js

+1
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ const http = axios.create({
1010
const get = (url, config) => Observable
1111
.fromPromise(http.get(url, config))
1212
.map((resp) => resp.data)
13+
.catch((err) => Observable.throw(err.response.data))
1314

1415
export const search = (q, page) => get('/search/repositories', { params: { q, sort: 'stars', page } })

0 commit comments

Comments
 (0)