3-Promise改变状态与指定回调顺序的问题
<!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>Document</title>
</head>
<body>
<script>
let p = new Promise((resolve, reject) => {
// 如果里面是同步任务,就先改变状态,然后执行then方法,并且执行相应的回调
// 如果是异步任务,就先执行then方法,并且指定回调,然后再改变状态(后面再执行相应回调中的代码),两种顺序都可执行成功!---里面是异步任务的情况居多,异步任务的时候如何延长then方法中的回调,比如resolve的改变状态是一秒,可以给then方法加2秒的定时器再去执行
// 总结:同步任务就是改变状态,后指定回调;异步任务就是先指定回调,后改变状态
// 不管是同步任务,还是异步任务,then方法中的数据都会在状态改变完成之后,再去获取
setTimeout(() => {
resolve("Ok");
}, 1000);
});
setTimeout(() => {
p.then(
(value) => {
console.log(value);
},
(reason) => {
console.log(reason);
}
);
}, 2000);
</script>
</body>
</html>