<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
// let promise = new Promise(function (resolve,reject) {
// console.log('yourPromise');
// resolve();
// })
// promise.then(function(){
// console.log('resolve');
// })
// console.log('hahaha');
function promise(){
console.log('nihao1');
return new Promise((resolve,reject)=>{
console.log('nihao2');
// resolve(); //
reject();
})
}
promise().then(function(){//then可以有两个参数,第一个参数是成功时调用,第二个参数是失败时调用,第二个参数可以省略
console.log('nihao3');
},function(){
console.log('nihao5');
})
console.log('nihao4');
</script>
</head>
<body>
</body>
</html>
Promise的内部实现是一个状态机。Promise有三种状态:pending,resolved,rejected。当promise刚创建完成时,处于pending状态。当Promise中的函数参数执行了resolve后,Promise的状态由pending变成resolved。如果在Promise的函数参数中执行的不是resolve方法而是reject方法,那么Promise会由pending状态变成rejected状态。