Я пытаюсь написать сценарий, который постоянно делает запросы к конечной точке, пока определенный элемент, который я ищу, не будет добавлен в список, расположенный в этой конечной точке. До сих пор я обещал, что после решения вернет этот элемент - я надеюсь, что это произойдет. Однако, если это не так и обещание отклонено, мне нужно иметь возможность перезапустить скрипт. Как мне это сделать? Это рекурсивная вещь? Кто-нибудь может помочь?
const search = (color)=>{
let promise = new Promise(function(resolve, reject) {
const info = (products) => {
let arr = []
products.map( p => {
if (p.color == `${color}`){
arr.push(p)
}
})
arr.length > 0? resolve(arr[0]):reject("failed")
}
///api call makes a request that returns all items in the "hats" section
const getProducts = api.getItems("hats", info)
promise.then(
res => console.log(res),
rej=> console.log(rej)
)
}
async function trySearch(color) {
while (true) {
try {
return await search(color);
} catch (err) {
await new Promise(resolve => setTimeout(resolve, 500));
}
}
}
trySearch('Gold')