Javascript for node js中的循环异步

Javascript for node js中的循环异步,javascript,node.js,async-await,Javascript,Node.js,Async Await,嗨,我的NodeJS应用程序中有一个for循环,它调用一个异步函数。我想检查一个值并决定是否找到客户。但是循环会一直迭代到最后一个元素。因此,我的错误循环不起作用。我希望循环检查响应,然后迭代下一个循环 for循环: for (let i = 0; i < customerlookupresponse.data.length; i++) { var customer = customerlookupresponse.data[i]; if (customer != unde

嗨,我的NodeJS应用程序中有一个for循环,它调用一个异步函数。我想检查一个值并决定是否找到客户。但是循环会一直迭代到最后一个元素。因此,我的错误循环不起作用。我希望循环检查响应,然后迭代下一个循环

for循环:

for (let i = 0; i < customerlookupresponse.data.length; i++) {
    var customer = customerlookupresponse.data[i];
    if (customer != undefined) {
        console.log("customer.id :: " + customer.id)
        var accountlookUpData = {
            customerId: customer.id
        };
        customerAccountLookUpRequest(accountlookUpData).then(data => {
            console.log("----" + i + " -- " + data);                               
            if (data && data.status === 1) {
                resolve(data);
                return;
            }else{
                reject({
                    status: 404,
                    message: "Customer not found"
                });
                return;
            }
        });
    } else {
        reject({
            status: 404,
            message: "Customer not found"
        });
        return;
    }
}
for(设i=0;i{
console.log(“--”+i+“--”+数据);
if(data&&data.status==1){
解析(数据);
返回;
}否则{
拒绝({
现状:404,
消息:“未找到客户”
});
返回;
}
});
}否则{
拒绝({
现状:404,
消息:“未找到客户”
});
返回;
}
}
异步函数:

async function customerAccountLookUpRequest(customerLookUpData) {
    var accountLookUp = config.app.url;
    let data = await axios.get(accountLookUp).then(accountLookUpResult => {
        for (i = 0; i < accountLookUpResult.data.length; i++) {
            var requestaccount = accountLookUpResult.data[i].accountNumber;
            if (requestaccount == customerLookUpData.lookupAccount) {
                accountLookUpResult.data[i].customerId = customerLookUpData.customerId;
                accountLookUpResult.data[i].status = 1;
                return accountLookUpResult.data[i];
            }
        }
    });
    return data;
}
异步函数customerAccountLookUpRequest(customerLookUpData){ var accountLookUp=config.app.url; 让data=等待axios.get(accountLookUp)。然后(accountLookUpResult=>{ 对于(i=0;i
我是NodeJS的新手,试图理解AsyncWait的概念。请提供帮助。

异步函数等待承诺返回。具有循环的函数应声明为async,customerAccountLookUpRequest函数应返回承诺。然后使用wait操作符调用函数。简单的例子:

class some_class {

    constructor() {
    }

    async my_loop() {
        let _self = this;
        for (let i = 0; i < customerlookupresponse.data.length; i++) {
            let data = await _self.customerAccountLookUpRequest(accountlookUpData);
            console.log("----" + i + " -- " + data);
        }
    }

    customerAccountLookUpRequest(customerLookUpData) {
        return new Promise((resolve, reject) => {
            axios.get(accountLookUp).then(accountLookUpResult => {
                resolve(accountLookUpResult);
            });
        });
    }
}
class一些\u类{
构造函数(){
}
异步my_循环(){
让_self=这个;
for(设i=0;i{
get(accountLookUp).then(accountLookUpResult=>{
解决(accountLookUpResult);
});
});
}
}

如果您对某个主题不熟悉,请至少阅读一些介绍/教程,例如随附的,或您选择的任何优秀教程。您似乎根本不了解异步函数的用途以及它们的行为方式。