Promise 培训

// ----------- node 原始 -----------

const request = (url, data, callback) => {
  setTimeout(() => {
    callback(url, data);
  }, 2000);
};

1 &&
  (function 请求API() {
    //
    request("/api/a", {}, (url) => {
      console.log(url, "x 请求成功");
      console.log(url, "x 是傻逼");
    });

    console.log("/api/a", "张三是傻逼");
  })();

// ----------- es6 promise -----------

// url 改 pormise
const request转promise = (url, data) =>
  new Promise((ok) => {
    request(url, data, (url, data) => {
      ok({ url, data });
    });
  });

0 &&
  (() => {
    request转promise("/api/b", {}).then(({ url }) => {
      console.log(url, "x 请求成功");
      console.log(url, "x 是傻逼");
    });

    console.log("/api/b", "李四是傻逼");
  })();

// ----------- es7 async -----------

0 &&
  (async () => {
    const { url } = await request转promise("/api/c", {});
    console.log(url, "x 请求成功");
    console.log(url, "x 是傻逼");
    console.log("/api/b", "王五是傻逼");
  })();
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
45
46
47
48