Javascript for node js中的循环异步
嗨,我的NodeJS应用程序中有一个for循环,它调用一个异步函数。我想检查一个值并决定是否找到客户。但是循环会一直迭代到最后一个元素。因此,我的错误循环不起作用。我希望循环检查响应,然后迭代下一个循环 for循环: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
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);
});
});
}
}
如果您对某个主题不熟悉,请至少阅读一些介绍/教程,例如随附的,或您选择的任何优秀教程。您似乎根本不了解异步函数的用途以及它们的行为方式。