1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
| /* eslint-disable class-methods-use-this */
| import _axios, { get, put, _delete } from '@/lin/plugin/axios'
|
| // 我们通过 class 这样的语法糖使模型这个概念更加具象化,其优点:耦合性低、可维护性。
| class Book {
| // constructor() {}
|
| // 类中的方法可以代表一个用户行为
| async createBook(data) {
| return _axios({
| method: 'post',
| url: 'v1/book',
| data,
| })
| }
|
| // 在这里通过 async await 语法糖让代码同步执行
| // 1. await 一定要搭配 async 来使用
| // 2. await 后面跟的是一个 Promise 对象
| async getBook(id) {
| const res = await get(`v1/book/${id}`)
| return res
| }
|
| async editBook(id, info) {
| const res = await put(`v1/book/${id}`, info)
| return res
| }
|
| async deleteBook(id) {
| const res = await _delete(`v1/book/${id}`)
| return res
| }
|
| async getBooks() {
| return _axios({
| method: 'get',
| url: 'v1/book',
| handleError: true,
| })
| }
| }
|
| export default new Book()
|
|