javascript - NodeJs 等到循环中的所有调用都完成

标签 javascript node.js axios

我在 Node (初学者)中有以下代码,我想在循环中执行完所有代码后调用一个函数,我知道我必须使用 promise ,但我不知道如何应用它们在这个情况下。代码已被简化。非常感谢。

const axios = require('axios').default;

axios.post('url', {
    params: {}
}).then(response=>{
    var objResponse = response.data
    Object.keys(objResponse).forEach(function (key){
        axios.post('url', {
            params: {}
        }).then(response=>{
            var n=0;
            getCode(n);
        })
    })
    **finishFunction**()
})

function getCode(n) {
    axios.post('url', {
        params: {}
    }).then(response=>{
        if(response.data){
            if (response.data.code) {
                getData();
            }else{
                if (n < 10) {
                    n++;
                    getCode(n);
                } else {
                    getTimeout();
                }
            }
        }
    })
}

function getTimeout() {
    axios.post('url', {
        params: {}
    })
}

function getData() {
    axios.post('url', {
        params: {}
    }).then(response=>{
        console.log('finished one loop');
    })
}

最佳答案

实现您想要的效果的最佳方法是使用带有常规 for 循环的 async/await。

这是我的意思的一个例子。您可以根据需要进行调整:

async doSomeStuff() {
    const results = []

    const res1 = await axios.post('url', {
        params: {}
    })
    
    // assuming res1 is an Array
    for (let i=0; i < res1.length; i++) {
        const result = await axios.post('url2', {
            params: {}
        })
        results.push(result)
        
    }

    return results
}

您还可以在循环中调用其他异步函数。

关于javascript - NodeJs 等到循环中的所有调用都完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71228885/

相关文章:

javascript - 在 .each() 中创建一个永无止境的循环

javascript - 保持 WebSocket 连接有效

javascript - Flask React 应用程序不热重载

javascript - 尝试通过调用使用 axios 的函数(异步)来填充数组,并且该函数在填充数组之前返回未定义

vue.js - 使用 moxios 和 fakeTimers 测试去抖异步请求

javascript - 使用 jQuery DateRangePicker 和 Datatable 的多个日期范围过滤器

javascript - 这个JS函数如何使用参数?

node.js - Nodejs - 合并 2 个或更多模块

node.js - Node 包安装失败,因为 Node 在我的根目录中查找依赖项

Android 在 React-Native App 中使用 Axios 将图像上传到服务器时出现问题