一、Promise API
1. resolve方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>resolve和reject</title>
</head>
<body>
<script>
/*
传入的参数为非promise对象,则返回一个状态为成功的promise对象
传入的参数为promise对象,则,参数的结果决定了resolve的结果
*/
let promise1 = Promise.resolve(new Promise((resolve, reject) => {
// resolve('success');
reject('fail')
}));//传入:123
console.log(promise1);
</script>
</body>
</html>
2. reject方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>resolve和reject</title>
</head>
<body>
<script>
/*
传入的参数为非promise对象,则返回一个状态为失败的promise对象
传入的参数为promise对象,则,参数的结果决定了reject的结果
*/
let promise2 = Promise.reject(new Promise((resolve, reject) => {
resolve('success');
}));//11
console.log(promise2);
</script>
</body>
</html>
3. all方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>resolve和reject</title>
</head>
<body>
<script>
// 参数: 一个数组
// 返回值:所有Promise都成功,状态才是成功,只要有一个是失败,就为失败。
let arr = [
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('success');
}, 1)
}),
new Promise((resolve, reject) => {
// resolve('success');
reject('fail');
}),
new Promise((resolve, reject) => {
resolve('success');
})];
let promise4 = Promise.all(arr);
console.log(promise4);
</script>
</body>
</html>
4. race方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>resolve和reject</title>
</head>
<body>
<script>
// 参数为数组,返回值为第一个promise的状态即为最终状态
let arr = [
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('success');
}, 1)
}),
new Promise((resolve, reject) => {
// resolve('success');
reject('fail');
}),
new Promise((resolve, reject) => {
resolve('success');
})];
let promise3 = Promise.race(arr);
console.log(promise3);
// apply bind call
</script>
</body>
</html>