在一个函数里面,需要发送多个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方法使用
基础教程推荐
猜你喜欢
- CSS3的几个标签速记(推荐) 2024-04-07
- Ajax实现动态加载数据 2023-02-01
- vue离线环境如何安装脚手架vue-cli 2025-01-19
- 浅谈Vue2和Vue3的数据响应 2023-10-08
- js禁止页面刷新与后退的方法 2024-01-08
- JS前端广告拦截实现原理解析 2024-04-22
- 浅析canvas元素的html尺寸和css尺寸对元素视觉的影响 2024-04-26
- 关于文字内容过长,导致文本内容超出html 标签宽度的解决方法之自动换行 2023-10-28
- 基于Vue制作组织架构树组件 2024-04-08
- this[] 指的是什么内容 讨论 2023-11-30
