-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtry08.html
More file actions
61 lines (59 loc) · 2.02 KB
/
try08.html
File metadata and controls
61 lines (59 loc) · 2.02 KB
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
<!DOCTYPE html>
<html>
<head>
<title>I promised I will try Q</title>
<script src="./lib/q/q-20130830/q.js"></script>
<script src="./utils.js"></script>
<script>
var evaluate1 = function () {
utils.log("ev1");
var ev1_step1 = function () {
utils.log("ev1_step1 started");
var deferred_step1 = Q.defer();
Q.delay(1000).then(function () {
utils.log("ev1_step1 finished");
deferred_step1.resolve();
});
utils.log("return ev1_step1");
return deferred_step1.promise;
};
var ev1_step2 = function () {
utils.log("ev1_step2 started");
var deferred_step2 = Q.defer();
Q.delay(1000).then(function () {
utils.log("ev1_step2 finished");
deferred_step2.resolve();
});
utils.log("return ev1_step2");
return deferred_step2.promise;
};
var deferred = Q.defer();
Q.delay(1000)
.then(ev1_step1)
.delay(1000)
.then(ev1_step2)
.delay(1000)
.then(function () {
utils.log("done ev1");
deferred.resolve("output from ev1");
});
utils.log("return ev1");
return deferred.promise;
};
var evaluate2 = function (input) {
utils.log("ev2, input of ev2 =", input);
Q.delay(1000).then(function () {
utils.log("async ev2");
});
utils.log("return ev2");
return "output from ev2";
};
Q.fcall(evaluate1)// Q.fcall returns a Promise obj, since evaluate1 returns promise, this line could be just evaluate1()
.delay(1000)
.then(evaluate2);
</script>
</head>
<body>
Check console.
</body>
</html>