любая помощь здесь была бы удивительной (и заранее спасибо) -
У меня есть блок кода - который иногда возвращает один элемент (изображение как ноль) -
Когда это Кодовый блок возвращает null. Мне нужна функция для перезапуска, я вижу очевидный способ сделать это - просто перезапустить функцию в таком состоянии, однако это не похоже на подход dry, и я уверен, что есть система для решения такой проблемы (поскольку я уверен, что я не первый, кто сталкивается с проблемой) -
Кодовый блок:
app.get('/sign', (req, res) => {
debugger;
if(!req.query.sign){
return res.send({
error: 'Your star sign in the key, otherwise your pokemon will just hide from you!'
})
}
// send back using res.send the obj details for the pokemon
let infoCall = getURL(req.query.sign);
let url = infoCall.url
let element = infoCall.element
// returns obj of data *name *url
debugger;
// pokeType function / url for http request, callback function
pokeType(url, (error, pokeObj) => {
if(error){
res.send({
error
})
}
// return return second function to get pokemon image
pokeImage(pokeObj.pokeUrl, pokeObj, (error, pokeDeets) => {
console.log(`poke Deets: >>>>> ${pokeDeets.sprites}`)
// if no sprite found re-run function
if (pokeDeets.sprites === null){
// throw new Error('No Sprite') // Thorw new error not correct will kill app
}
res.send({
// user input ---
sign: req.query.sign,
// pokeObj returned data
name: pokeObj.pokeName,
pokeUrl: pokeObj.pokeUrl,
// pokeDeets returned data
sprites: pokeDeets.sprites,
element
})
})
})
})
функция, которую нужно перезапустить: pokeType <<< примерно посередине вниз </p>
эта функция вызывает функцию обратного вызова, которая получает изображение, но если изображение возвращает ноль:
if (pokeDeets.sprites === null){
// throw new Error('No Sprite') // Thorw new error not correct will kill app
}
Мне нужно pokeType для повторного запуска -
Мне интересно, есть ли конкретный c вызов / функция в express, который сообщает функции go назад и начать снова с этой точки? т.е. pokeType?
Выше может быть немного плохо сформулировано - если так, мои извинения и, пожалуйста, прокомментируйте любые вопросы.
Спасибо за любую помощь.
Wally