承诺,在声明函数时承诺好,如果成功就执行resolve,如果失败就执行reject。定义resolve和reject函数的人,是使用这个Promise对象的人。
Promise有三个状态,分别时等待中,成功,失败。
注意!!!!三个状态只能成等待中变成成功,或者从等待中变成失败,如果已经成功成功或者失败,就不能再改变状态
- function 异步函数 () {
- return new Promise((resolve, reject) => {
- setTimeout(() => {
- // 模拟几率
- if (Math.random() > 0.5) {
- // 来了
- resolve()
- } else {
- reject()
- }
- }, 3000)
- })
- }
- 异步函数().then(() => {
- // resolve函数
- console.log("一起走")
- }).catch(() => {
- console.log('自己走')
- })
为什么有些函数调用之后,可以调用.then方法
axios.get().then(res => {}).catch(() => {})
因为这些函数在封装时,上来返回了一个new Proimise。promise对象中有三个方法。
Promise中所有的方法.then.catch.finally调用之后,都会返回这个promise对象。并且会按链式的顺序执行对应的then中的方法
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行