用17行代码来了解异步脚本逻辑。
async function one() {
let time = ()=>{
return new Promise((resolve, reject) => {
setTimeout(()=>{
console.log(1);
resolve(2);
}, 1000);
});
};
await time();
console.log(2);
}
let two = ()=>{
console.log(3);
}
await one();
two();
在控制台运行结果:
1
2
3
你想的运行结果是否上述一致呢?
详解JavaScript Promise
Promise是异步编程的一种解决方案,是一个对象,可以获取异步操作的消息,大大改善了异步编程的困难,避免了回调地狱,比传统的解决方案回调函数和事件更合理和更强大。
从语法上讲,Promise是一个对象,它可以获取异步操作的消息。提供了一个统一的API,各种异步操作都可以用同样的方法进行处理
1、Promise的实例有三个状态:
(1)Pending(进行中)
(2)Resolved(已完成)
(3)Rejected (已拒绝)
2、Promise的实例有两个过程
(1)pending > fulfiled :Resolved
(2)pending > rejected :Rejected
注意:一旦从进销项状态变为其他状态就永远不能更改状态了