【发布时间】:2019-10-31 16:16:46
【问题描述】:
您好,我的节点 js 应用程序中有一个 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;
}
}
异步函数:
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;
}
我是 node js 的新手,并试图理解异步等待的概念。请帮忙。
【问题讨论】:
-
如果您不熟悉某个主题,请至少阅读一些介绍/教程,例如MDN for using promises 和 MDN for async/await,或您选择的任何好的教程。您似乎根本不了解异步函数的用途以及它们的行为方式。
标签: javascript node.js async-await