Ошибка неверного запроса при использовании Asyn c Await в цикле for - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь запустить asyn c await в for l oop, но продолжаю получать ошибку 400 (неверный запрос). Когда я явно заменяю запрос x известным значением, код работает должным образом.

const expected_res = (async function(param){
   const response = await fetch("https://apione.com?x="+ param)
   const data = await response.json()
  ....

})(param).then( (results)=>{

 ...
  return result 

}).then(async (data)=>{
 //Note:  data is an array

for( const id of data){
    //Note: id is of type string  console.log( typeof id, id instanceof String) => string, false 
     const response = await fetch("https://apitwo.com?x="+ id) // this is where the error occurs
     const data = await response.json()
   }
 })

1 Ответ

0 голосов
/ 06 августа 2020

При создании сегментов пути или параметров запроса вы всегда должны убедиться, что они правильно закодированы.

Вы можете заключить значения в encodeURIComponent(). Для параметров запроса вы также можете использовать URLSearchParams для более современного подхода.

const query = new URLSearchParams({
  startTime: 8, // no idea where this is supposed to come from
  endTime: 10   // nor this
})
const response = await fetch(`https://apitwo.com/api/${encodeURIComponent(id)}?${query}`)
...