Vue-Promise
2021/8/13 23:05:53
本文主要是介绍Vue-Promise,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
promise
就是一种异步编程的的解决方案
当执行网络请求的时候,代码就会出现阻塞,下面的代码要等待请求完成了在运行,所以我们一般网络请求的时候就去开启一个异步任务,一边请求一边执行其他代码
请求到数据后,就要一个回调函数,返回数据
这只是简单的场景,如果在很复杂的情景里就会出现回调地狱。。。。。。
为了解决这个问就有了Promise,很优雅的就可以解决问题,调用请求和数据的处理放在不同的 位置上
new Promise((resolve, reject) => { setTimeout(() => { //延时函数模拟请求 resolve() }, 1000) }).then(() => { console.log(111); //模拟处理数据 return new Promise((resolve, reject) => { setTimeout(() => { resolve() 通过数据再请求 }) }) }).then(() => { //再处理拿到的数据 console.log(222); })
这就是链式编程 一条链处理一条链的事情
Promise 有三个状态
1 pending 等待 正在请求
2. fulfill 满足 调用 resolve
3.reject 拒绝状态 调用 reject
写法
通过源码
我们可以看到 then 可以传 两个函数 一个 是fulfill ,一个reject ,就是说 在then中可以这样写
.then(res => { console.log(222); }, err => { console.log(err); })
这样catch就可以不用写在then后面 直接写在then里面
Promise 链式调用
new Promise((resolve, reject) => { setTimeout(() => { resolve('Hello World') }, 1000) }).then(res => { console.log(res); return Promise.resolve(res + '11') }).then(res => { return Promise.resolve(res + '22') }).then(res => { return Promise.resolve(res + '22') }).then(res => { return Promise.resolve(res + '22') }).then(res => { return Promise.resolve(res + '22') }).then(res => { return Promise.resolve(res + '22') }).then(res => { return Promise.resolve(res + '22') })
调用 时可以直接写这样
以前的这样太过于麻烦
return new Promise((resolve, reject) => { setTimeout(() => { resolve() 通过数据再请求 }) })
还可以这样写
直接return res +‘ 222’
直呼 程序‘偷懒’真是个好习惯 :)
如果 有两个请求 同时需要
这里即有一个函数Promise.all([])
Promise.all([ new Promise((resolve, reject) => { setTimeout(() => { resolve({ name: 'kobe', age: 18 }) }, 1000); }), new Promise((resolve, reject) => { setTimeout(() => { resolve({ name: 'kobe', age: 18 }) }, 1000); }) ]).then(res => { console.log(res); }).catch(err => { console.log(err); })
这篇关于Vue-Promise的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15useCallback教程:React Hook入门与实践
- 2024-11-15React中使用useContext开发:初学者指南
- 2024-11-15拖拽排序js案例详解:新手入门教程
- 2024-11-15React中的自定义Hooks案例详解
- 2024-11-14受控组件项目实战:从零开始打造你的第一个React项目
- 2024-11-14React中useEffect开发入门教程
- 2024-11-14React中的useMemo教程:从入门到实践
- 2024-11-14useReducer开发入门教程:轻松掌握React中的useReducer
- 2024-11-14useRef开发入门教程:轻松掌握React中的useRef用法
- 2024-11-14useState开发:React中的状态管理入门教程