Мой сценарий таков: есть API, из которого я хотел бы получить.API возвращает json, у которого есть массив с именем «assets».Этот размер массива всегда будет равен 20. Теперь я называю конечную точку следующим образом:
fetch(
`https://api.example.io/api/v1/assets/?offset=${offset}`
)
, где, если смещение равно 0, оно вернет массив из 0-20 активов, если смещение равно 20,верните 20 к 40 и т. д.
Я хочу проверить 1000 элементов, что означает, что я хотел бы вызвать эту выборку 1000/20 = 50 раз.Всякий раз, когда я вызываю выборку, я хотел бы перебрать эти 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.Всякий раз, когда я пытаюсь сделать это, он будет вызывать выборку со значением 0 для смещения пару раз, он не будет ждать окончания вложенного цикла for, а затем вызывать его для 20 и более поздних 40 и так далее ...
Как правильно добиться такого поведения?