Javascript NodeJS使用回调在for循环中调用GET方法

Javascript NodeJS使用回调在for循环中调用GET方法,javascript,node.js,express,for-loop,callback,Javascript,Node.js,Express,For Loop,Callback,我正在使用NodeJS和Express并迭代字符串数组,例如: [ "1" , "+" , "B4", "*", "8"] 如果字符串包含一个字母,函数应该关闭并调用GET方法从数据库中检索值。到目前为止,我的代码如下所示: function processFormula(formula) { console.log(formula) var arr = formula.split(" "); for (var i = 0; i < arr.length; i

我正在使用NodeJS和Express并迭代字符串数组,例如:

  [ "1" , "+" , "B4", "*", "8"]
如果字符串包含一个字母,函数应该关闭并调用GET方法从数据库中检索值。到目前为止,我的代码如下所示:

function processFormula(formula) {
    console.log(formula)
    var arr = formula.split(" ");
    for (var i = 0; i < arr.length; i++) {
        if (arr[i].match(/[a-z]/i)) {

         /* fetch the value and store it in arr[i] */ 

         }
    return arr.toString();
    }
突然出现了很多。我正在努力理解我应该把回调放在哪里,以迭代方式处理这种情况


非常感谢您的帮助

这很难协调。您可以尝试使用HTTP请求库,如使用承诺的
axios
。然后,您可以使用
Promise.all
来协调所有请求。

您可以在for中添加另一个if,并返回到最后一个元素:

for(var i = 0; i < arr.length; i++){
    if (arr[i].match(/[a-z]/i)) {

     /* fetch the value and store it in arr[i] */ 

    }
    if(i == arr.length-1){
            return arr.toString();
    }
}
for(变量i=0;i

还有一个建议,尝试使用
array.length
outside for循环,因为每个循环都将计算数组的长度,以检查是否满足条件,因此每次都要遍历数组。(我在回答中没有改变这一点)。只需在循环之前执行,然后执行
var size=array.length

首先查看第一个问题:。关于循环,请看一看其中一个:感谢Felix的帮助
for(var i = 0; i < arr.length; i++){
    if (arr[i].match(/[a-z]/i)) {

     /* fetch the value and store it in arr[i] */ 

    }
    if(i == arr.length-1){
            return arr.toString();
    }
}