我的场景如下:有一个我想要获取的API。API返回一个json,该json有一个名为"assets“的数组。该数组大小始终为20。现在,我这样调用端点:
fetch(
`https://api.example.io/api/v1/assets/?offset=${offset}`
)
其中,如果offset为0,则返回0- 20资产的数组,如果offset为20,则返回20到40,依此类推。
我想检查1000个项目,这意味着我想调用这个fetch 1000/20 = 50次。每当我调用fetch时,我都会循环这20个项目,并将它们插入到我的数据库中。问题是我不能做这样的事情:
let offset=0;
for(let i = 0; i < 50; i++ {
fetch(
`https://api.example.io/api/v1/assets/?offset=${offset}`
)
for(let j = 0; j < 20; j++){
// Insert into DB
}
offset+=20;
}
由于JS的异步特性。每当我尝试这样做时,它都会多次调用fetch,偏移量的值为0,它不会等到嵌套的for循环完成,然后调用20或更晚的40,依此类推……
实现这一行为的正确方法是什么?
https://stackoverflow.com/questions/53599748
复制相似问题