二
Promise的几个关键问题1
<!DOCTYPE html>
<html lang="en">
<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的几个关键问题1</title>
</head>
<body>
<script>
const p = new Promise((resolve, reject) => {
throw 3
})
p.then(
value => {},
reason => {console.log('reason', reason)}
)
p.then(
value => {},
reason => {console.log('reason2', reason)}
)
</script>
</body>
</html>
Promise的几个关键问题2
<!DOCTYPE html>
<html lang="en">
<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的几个关键问题2</title>
</head>
<body>
<script>
new Promise((resolve, reject) => {
setTimeout(() => {
resolve(1)
}, 1000);
}).then(
value => {},
reason => {console.log('reason', reason)}
)
new Promise((resolve, reject) => {
resolve(1)
}).then(
value => {console.log('value2', value)},
reason => {console.log('reason2', reason)}
)
console.log('-------')
const p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(1)
}, 1000);
})
setTimeout(() => {
p.then(
value => {console.log('value3', value)},
reason => {console.log('reason3', reason)}
)
}, 1100);
</script>
</body>
</html>
Promise的几个关键问题3
<!DOCTYPE html>
<html lang="en">
<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的几个关键问题3</title>
</head>
<body>
<script>
new Promise((resolve, reject) => {
reject(1)
}).then(
value => {
console.log('onResolved1()', value)
throw 5
},
reason => {
console.log('onRejected1()', reason)
throw 5
}
).then(
value => {
console.log('onResolved2()', value)
},
reason => {
console.log('onRejected2()', reason)
}
)
</script>
</body>
</html>
Promise的几个关键问题4
<!DOCTYPE html>
<html lang="en">
<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的几个关键问题4</title>
</head>
<body>
<script>
new Promise((resolve, reject) => {
setTimeout(() => {
console.log("执行任务1(异步)")
resolve(1)
}, 1000);
}).then(
value => {
console.log('任务1的结果: ', value)
console.log('执行任务2(同步)')
return 2
}
).then(
value => {
console.log('任务2的结果:', value)
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log('执行任务3(异步))')
resolve(3)
}, 1000);
})
}
).then(
value => {
console.log('任务3的结果: ', value)
}
)
</script>
</body>
</html>
Promise的几个关键问题5
<!DOCTYPE html>
<html lang="en">
<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的几个关键问题5</title>
</head>
<body>
<script>
new Promise((resolve, reject) => {
reject(1)
}).then(
value => {
console.log('onResolved1()', value)
return 2
},
).then(
value => {
console.log('onResolved2()', value)
return 3
},
reason => {throw reason}
).then(
value => {
console.log('onResolved3()', value)
},
reason => Promise.reject(reason)
).catch(reason => {
console.log('onReejected1()', reason)
return new Promise(() => {})
}).then(
value => {
console.log('onResolved3()', value)
},
reason => {
console.log('onReejected2()', reason)
}
)
</script>
</body>
</html>