vue.js for循环异步请求,等所有请求返回了,再继续执行下一步请求

文章描述了如何在JavaScript中使用axios库处理跨域请求,通过Promise.all管理并发,确保接口调用成功后执行后续操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// urltemp是要发送请求的目标地址数组,长度等于发请求次数
let arr = [];
let that = this;
for (let i in urlTemp) {
    arr.push(
        new Promise(function(resolve, reject) {
        	// 跨域
            let realHealthyUrl = window.location.protocol + '//' + window.location.host + '//' + urlTemp[i].replace('http://', '') + '/xxxxx/health';
            axios
                .get(realHealthyUrl)
                .then(res => {
                    if (!res || !res.data || res.data.statusCode !== 'API-COMMON-INF-OK') {
                    console.log('接口调用失败')
                    } else {
                        resolve(res);
                    }
                })
                .catch(() => {
                console.log('网站无响应');
                });
        })
    );
}
Promise.all(arr).then(result => {
    this.dosomething();
});
JavaScript (Vue) 中,如果你有一个原生的 JavaScript 函数需要在 Vue 实例的方法执行完毕后再运行,可以采用以下几种方式: 1. **$nextTick** 方法:Vue 提供了 `$nextTick` 方法,它会在下一次 DOM 更新循环结束之后立即执行回调函数。你可以将原生方法放在这个回调里,确保Vue 的更新完成再执行。 ```javascript this.someVueMethod().then(() => { // 这里是在 Vue 方法执行完后的回调 yourNativeFunction(); }); ``` 2. **事件监听**:如果Vue 方法是异步操作并触发某个事件通知已完成,你可以监听这个事件并在处理该事件的回调中执行原生方法。 ```javascript this.$on('methodFinished', () => { yourNativeFunction(); }); this.someVueMethod(); // 确保你在 Vue 实例上注册了 'methodFinished' 事件 ``` 3. **使用 Promise 或 async/await**:如果你的 Vue 方法返回的是一个 Promise,你可以直接链式调用,等待 Promise 解决后执行原生方法。 ```javascript this.someVueMethod() .then(() => { // Vue 方法执行完毕 yourNativeFunction(); }); ``` 4. **混合实例方法**:如果你想在 Vue 组件内部直接调用原生方法,可以考虑将原生方法包装成 Vue 模块内的一个方法,并在 Vue 方法完成后执行。 ```javascript methods: { vueMethod() { this.nativeFunctionPromise.then(() => { // 执行原生方法 }); }, nativeFunctionPromise: new Promise((resolve) => { // 异步原生操作,完成后调用 resolve }), } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值