-
Notifications
You must be signed in to change notification settings - Fork 0
/
Promise.html
61 lines (61 loc) · 1.99 KB
/
Promise.html
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>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Promise/Async/Await</title>
</head>
<body>
Promise 是一个构造函数,使用时要 new Promise(x) 来构造一个对象,其中的 x
是一个函数,(resolve, reject) => {异步代码返回
data},在函数中执行异步代码,如果异步执行成功,则调用
resolve(data),错误则调用 reject(data)...
<hr />
Promise.resolve() 执行成功
<hr />
Promise.reject() 执行失败
<hr />
Promise.then() 递延处理
<hr />
Promise.all() 所有的完成,常被用于处理多个 Promise 对象的状态集合
<hr />
使用 async/await 时,在主体函数前使用 async,表示这是个异步函数,await
只能使用在 async 函数内部。当函数执行的时候,一旦遇到 await
就会先返回,等到异步操作完成,再接着执行函数体内后面的语句。示例中,await
getJSON() 说明 console.log 的调用,会等到 getJSON() 返回的 Promise 对象
resolve 之后触发
</body>
<script>
let samplePromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Bingo...');
}, 3333);
}).then(data => {
console.log(data);
});
getJSON = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve({
name: 'VKX',
age: 25,
sex: 'MAN'
});
}, 3333);
});
};
// const makeRequest = () => {
// getJSON().then(data => {
// console.log(data);
// return "done";
// });
// };
// makeRequest();
const makeRequest = async () => {
console.log(await getJSON());
return 'done';
};
makeRequest();
</script>
</html>