En una función que tengo, trato de tomar un valor, y si el valor termina como undefined , entonces llamo a la misma función pero con un parámetro diferente
let price = await getPrice(name, category, '1'); if (price === undefined) { price = await getPrice(name, category, '2'); if (price === undefined) { price = await getPrice(name, category, '3'); } }Me dijeron que este enfoque puede ser muy propenso a errores, y después de analizar un poco, puedo ver por qué. Sin embargo, no sé si hay una mejor manera de manejar esto.
Necesito el tercer parámetro ya que lo uso para procesar una URL, ya que esa URL tiene una de esas cadenas.
static getPrice(productName, productCategory, variantNumber) { ... let url = `https://exampleurl.com/${productName}cat=${productCategory}${variantNumber}`; ... }Use un bucle y deténgase cuando obtenga un resultado definido.
const variants = ['1', '2', '3']; let price; for (let i = 0; i < variants.length; i++) { price = await getPrice(name, category, variants[i]); if (price !== undefined) { break; } }