在一个函数里面,需要发送多个ajax请求,并且下一个请求都需要上一个请求返回的数据,那我们可以下面的做法: new Promise((resolve, reject) = {//执行异步请求$.get(test.cgi, {name: John,time: 2pm},fun...
在一个函数里面,需要发送多个ajax请求,并且下一个请求都需要上一个请求返回的数据,那我们可以下面的做法:
new Promise((resolve, reject) => { //执行异步请求 $.get("test.cgi", { name: "John", time: "2pm" }, function (data) { resolve(data) }); }).then(data => { console.log('请求成功1') return new Promise(resolve => { $.get("test.cgi", { name: "John", time: "2pm" }, function (data) { resolve(data) }); }).then(resolve => { console.log('请求成功2') }) })
但有时候也不是需要下一个请求要上一个请求的数据,两个请求各自不相干,但我们要求两个请求执行完毕后,再拿他们的数据进行统一处理,promise提供了一个all方法能让我们做到:
Promise.all([ new Promise(resolve => { $.get("test.cgi", { name: "John", time: "2pm" }, function (data) { resolve(data) }) }), new Promise(resolve => { $.get("test.cgi", { name: "John", time: "2pm" }, function (data) { resolve(data) }) }) ]).then(response => { console.log(response[0]) console.log(response[1]) })
all要传入一个数组,数组的元素是一个 Promise对象,相当封装一个异步操作;当数组中的所有Promise的异步操作执行完毕,那就会调用then进行处理,参数response包含了所有的promise返回的数据,是一个数组,response[0]表示第一个promise返回的数据,以此类推。
沃梦达教程
本文标题为:vue-promise的all方法使用
基础教程推荐
猜你喜欢
- Ajax+smarty技术实现无刷新分页 2022-12-15
- Javascript Bootstrap的网格系统,导航栏和轮播详解 2023-08-11
- 关于Ajax跨域问题及解决方案详析 2023-02-23
- JS滚动到顶部踩坑解决记录 2023-07-10
- Ajax发送和接收请求 2022-12-15
- uniapp开发微信小程序自定义顶部导航栏功能实例 2022-10-21
- 在实战中可能碰到的几种ajax请求方法详解 2023-02-01
- HTML clearfix清除浮动讲解 2022-11-20
- cocos creator游戏实现loading加载页面,游戏启动加载动画 2022-10-29
- 使用ajax跨域调用springboot框架的api传输文件 2023-02-23