vue Promise的使用
一、Promise是什么?
Promise是异步编程的一种解决方案。
二、那什么时候我们会来处理异步事件呢?
1、 一种很常见的场景应该就是网络请求了。
我们封装一个网络请求的函数,因为不能立即拿到结果,所以不能像简单的3+4=7一样将结果返回。所以往往我们会传入另外一个函数,在数据请求成功时,将数据通过传入的函数回调出去。如果只是一个简单的网络请求,那么这种方案不会给我们带来很大的麻烦。
三、基本使用
01-Promise的基本使用.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>Title</title> </head> <body> <script> // 什么情况下会用到Promise? // 一般情况下是有异步操作时,使用Promise对这个异步操作进行封装 // new -> 构造函数(1.保存了一些状态信息 2.执行传入的函数) // 在执行传入的回调函数时, 会传入两个参数, resolve, reject.本身又是函数 new Promise((resolve, reject) => { setTimeout(() => { // 成功的时候调用resolve // resolve('Hello World') // 失败的时候调用reject reject( 'error message' ) }, 1000) }).then((data) => { // 1.100行的处理代码 console.log(data); }). catch ((err) => { console.log(err); }) </script> </body> </html> |
02-Promise的另外处理形式.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>Title</title> </head> <body> <script> new Promise((resolve, reject) => { setTimeout(() => { resolve( 'Hello Vuejs' ) //reject('error message') }, 1000) }).then(data => { console.log(data); }, err => { console.log(err); }) </script> </body> </html> |
四、链式调用
03-Promise的链式调用.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>Title</title> </head> <body> <script> // 参数 -> 函数(resolve, reject) // resolve, reject本身它们又是函数 // 链式编程 new Promise((resolve, reject) => { // 第一次网络请求的代码 setTimeout(() => { resolve( "hello" ) }, 1000) }).then(data => { // 第一次拿到结果的处理代码 console.log(data); return data + '1111' ; }).then(data => { // 第二次处理的代码 console.log(data); return data + '2222' }).then(data => { // 第三处理的代码 console.log(data); }) </script> </body> </html> |
资源丰富的的网盘资源:网盘资源大全! 推荐一个适合零基础学习SQL的网站:不用安装数据库,在线轻松学习SQL!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!