为什么需要使用promise
Javascript采用回调函数(callback)来处理异步编程。从同步编程到异步回调编程有一个适应的过程,但是如果出现多层回调嵌套,也就是回调金字塔,代码就会变得难以阅读,因此promise正是可以被用于解决回调金字塔的一种规范
promise的基本使用
<script>
// setTimeout(function() {
// })
// 1.使用setTimeout
// setTimeout(() => {
// console.log('Hello World')
// },1000)
// 什么情况下会用到promise? 一般情况下是有异步操作时,使用promise对这个异步操作进行封装
// new -> 构造函数(1.保存了一些状态信息 2.执行传入的函数)
// 在执行传入的回调函数时,会传入两个参数,resolve,reject,本身又是函数
new Promise((resolve,reject) => {
// 异步操作
setTimeout(() => {
// 成功的时候,调用resolve
// resolve('Hellow world')
// 失败的时候调用reject
reject('error message')
},1000)
}).then((data)=> {
// 1.100行的处理代码
console.log(data);
}).catch(err => {
console.log(err)
})
</script>
promise的三种状态
promise的另外处理形式
<script>
new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Hello Vuejs')
reject('err message')
}, 1000)
}).