소수전공 Bonus회차) async와 Promise 기초

2017. 12. 28. 20:15프로그래밍(주력)/JAVASCRIPT

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<!DOCTYPE html>
 
<html lang="ko">
  <head>
    <title>
      async 예제
    </title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/async/2.6.0/async.min.js"></script>
    <style>
      html, body{
        width: 100%;
        height: 100%;
        margin: 0;
        padding: 0;
      }
      #result{
        width: 100%;
        height: 100%;
      }
    </style>
  </head>
  <body>
    <div id = 'result'></div>
  </body>
  <script>
    //IE를 쓰고 싶으면 자바스크립트 컴파일러인 BABEL사용
    const a = () => {
      console.log('a');
    };
    const b = () => {
      console.log('b');
    };
    const c = () => {
      console.log('c');
    };
    //Promise는 콜백지옥을 해결해주는 함수 실행 뒤 then 뒤를 실행해주는 자바스크립트 내장 함수,객체이다!
    //reject로 날린건 catch까지 간다. res는 then까지만
    const testP = () => new Promise(
      (res ,rej) => {
        window.setTimeout(() => {
          rej('Promise success')
        }, 2000);
      }
    )
    testP().then((data) => {
      console.log('Promise test success');
    }).catch((data) => {
      console.log(data, 'Promise test fail');
    })
    //parallel은 비동기로 스레드 나눠서 실행
    //waterfall은 동기로 순서대로
    // async.parallel([
    //   (callback) => {
    //     a();
    //     callback();
    //   },
    //   (callback) => {
    //     b();
    //     callback();
    //   },
    //   (callback) => {
    //     c();
    //     callback();
    //   }
    //
    // ],(err, result) => {
    //   console.log('done');
    // });
    //
    // async.auto({
    //   'af' : (callback) => {
    //     a();
    //     callback(null, 'a');
    //   },
    //   'bf' : ['cf', (_, callback) => {
    //     b();
    //     console.log(_);
    //     callback(null, 'b');
    //   }],
    //   'cf' : (callback) => {
    //     c();
    //     callback(null, 'c');
    //   }
    // },(err, result) => {
    //   console.log(result);
    // })
 
 
 
  </script>
</html>
 
cs