下一个迭代开始循环之前的API调用

问题描述

我想通过其API向某个应用发送POST请求。我想做的是处理输入数据(称为数据),并在循环中的一条记录到一条记录之间发送POST请求。然后,出于优化目的,我删除了数据中的相应对象。我知道由于JavaScript的异步功能,循环在调用该函数之前完成。但是,即使我将api函数包装在IIFE中,或将其包装在带有await的异步函数中(下面的代码),编译器仍然会给我提供具有最后一个对象相同参数的函数调用。因此,当我在应用程序上看到创建的记录时,David的信息被生成了3次。下面的屏幕快照是处理后的每个记录对象。如果您能告诉我在循环的下一次迭代之前触发api调用的方式,将不胜感激。

l = ['49275','49287','69674','43924']
x = '49375'

listy = []
for i in l:
    for n in range(len(x)):
        if x[n] != i[n]:
            listy.append(n / len(x))
            break
    else:
        listy.append(1.)

print(listy)

这是每个处理后的数据的屏幕截图。

Screenshot

解决方法

我认为您还不了解for loop内部的while的工作方式。 data应该每次递增以获取data中的下一个数组。

data[0] => { userId: 123 ... },data[1] => { userId: 345 ... } and so on

每次for loop迭代都会检查每个子数组的3个元素,因此每次temp都存储userId and name的键值。因此,当循环结束时,temp包含key => userId,name和相应的值。

    var data = [
        {
            "userId": "123","name": "John","phoneNumber": "123-456-6789"
        },{
            "userId": "345","name": "Summer","phoneNumber": "535-631-9742"
        },{
            "userId" : "789","name": "David","phoneNumber": "633-753-1352"
        }
    ]

    var dataLen = data.length;
        
    let i = 0 ;
        while ( i < dataLen) {
            
            let temp = [];
            
        for (let [key,value] of Object.entries(data[i])) {
                
             if(key == 'userId' || key == 'name'){
                   temp[key] = value;   
                  }
                                
        }
            
                //Just to print the values and understand
            for(let k in temp){
                      console.log(k+" -> "+temp[k]);
                }
             
              //here you will pass the temp values to functions
              console.log(" At each iteration execute the required functions ");
            
              //asyncFunction(temp);
              i += 1;

            
       }

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...