promise和async/await都是es6的新增特性,都是处理异步问题的好办法。
Promise是干什么的?
1、主要用于异步计算
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
3、可以在对象之间传递和操作promise,帮助我们处理队列
Promise 对象用于表示一个异步操作的最终完成 (或失败), 及其结果值.
先用代码简单实现一下:
function waiting() {
return new Promise((resolve, reject) => {
setTimeout(function () {
resolve('2')
}, 2000)
})
}
console.log(1)
console.log(3)
waiting().then(res => {
console.log('res:', res)
})
打印结果:
可以看见,先打印的1和3,两秒之后打印的2,这不是我们要的结果,我要的是依次打印1,2,3
function waiting() {
return new Promise((resolve, reject) => {
setTimeout(function () {
resolve('2')
}, 2000)
})
}
waiting().then