File tree Expand file tree Collapse file tree 2 files changed +115
-32
lines changed Expand file tree Collapse file tree 2 files changed +115
-32
lines changed Original file line number Diff line number Diff line change 1+
2+ // pyramid of doom
3+ // setTimeout(function() {
4+
5+ // console.log('do this first');
6+
7+ // setTimeout(function() {
8+
9+ // console.log('do this second');
10+
11+ // setTimeout(function() {
12+
13+ // console.log('do this third');
14+
15+ // }, 500);
16+
17+ // }, 1000);
18+
19+ // }, 2000);
20+
21+
22+
23+ // function allDone() {
24+ // console.log('all done');
25+ // }
26+
27+ // let counter = 0;
28+
29+ // counter++;
30+ // setTimeout(function() {
31+ // console.log('a');
32+ // counter--;
33+ // if (counter === 0) {
34+ // allDone();
35+ // }
36+ // }, 2000);
37+
38+ // counter++;
39+ // setTimeout(function() {
40+ // console.log('b');
41+ // counter--;
42+ // if (counter === 0) {
43+ // allDone();
44+ // }
45+ // }, 4000);
46+
47+ // counter++;
48+ // setTimeout(function() {
49+ // console.log('c');
50+ // counter--;
51+ // if (counter === 0) {
52+ // allDone();
53+ // }
54+ // }, 1000);
55+
56+ // write me some code which will ensure all three set timeouts have completed and then run
57+ // the allDone function
58+
59+ // do not wrap the allDone function in a setTimeout call with something like 5000
60+
61+ // fake Java or fake C#
62+ var con = open ( 'database string' ) ;
63+
64+ var rst = con . query ( 'select * from whatever' )
65+
66+ console . log ( rst ) ;
67+
68+ // JavaScript
69+ open ( 'database string' . con => {
70+
71+ con . query ( 'select * from whatever' . rst => {
72+
73+ console . log ( rst ) ;
74+
75+ } ) ;
76+
77+ } ) ;
78+
79+
80+
81+
82+
83+
84+
85+
Original file line number Diff line number Diff line change 11
2- // pyramid of doom
3- // setTimeout(function() {
2+ const youngMan = new Promise ( function youngLady ( resolve , reject ) {
43
5- // console.log('do this first');
4+ setTimeout ( function ( ) {
5+ reject ( 'yes, I will marry you because I am madly in love with you...' ) ;
6+ } , 2000 ) ;
67
7- // setTimeout(function() {
8+ } ) ;
89
9- // console.log('do this second');
10+ youngMan . then ( result => {
11+ console . log ( result ) ;
12+ console . log ( 'yay! she said yes!' ) ;
1013
11- // setTimeout(function() {
14+ console . log ( 'time to look for a place!' ) ;
15+ return new Promise ( ( resolve ) => {
16+ setTimeout ( ( ) => {
17+ resolve ( 'found a place to get married!' ) ;
18+ } , 2000 ) ;
19+ } ) ;
1220
13- // console.log('do this third');
14-
15- // }, 500);
16-
17- // }, 1000);
21+ } ) . then ( result => {
1822
19- // }, 2000 );
23+ console . log ( result ) ;
2024
25+ console . log ( 'time to find wedding garments!' ) ;
26+ return new Promise ( ( resolve , reject ) => {
27+ setTimeout ( ( ) => {
28+ reject ( 'found wedding garments!' ) ;
29+ } , 2000 ) ;
30+ } ) ;
31+
32+ } ) . then ( result => {
2133
34+ console . log ( result ) ;
2235
23- function allDone ( ) {
24- console . log ( 'all done' ) ;
25- }
36+ } ) . catch ( result => {
37+ console . log ( result ) ;
38+ console . log ( 'time to sign up for eHarmony' ) ;
2639
40+ } ) ;
2741
28- setTimeout ( function ( ) {
29- console . log ( 'a' ) ;
30- } , 2000 ) ;
31-
32- setTimeout ( function ( ) {
33- console . log ( 'b' ) ;
34- } , 4000 ) ;
35-
36- setTimeout ( function ( ) {
37- console . log ( 'c' ) ;
38- } , 1000 ) ;
39-
40- // write me some code which will ensure all three set timeouts have completed and then run
41- // the allDone function
42-
43- // do not wrap the allDone function in a setTimeout call with something like 5000
44-
42+ console . log ( 'young man is waiting...' )
4543
4644
4745
You can’t perform that action at this time.
0 commit comments