quiero obtener el stock del producto y usarlo en detalle pero tengo un problema
Tengo una función como esta.
async function getStock(productId, erp_code) { let itemsStock; await fetch(`${GET_STOCK}${productId}`, requestOptions) .then(response => response.json()) .then(result => itemsStock = result[erp_code][0].LotQTY) .catch(error => console.log('error', error)); console.log(itemsStock); i cant console.log the data return itemsStock; }pero a cambio recibo una promesa pero eso no es lo que quiero.
quiero decir que obtengo los datos que necesito en función pero no puedo usarlos fuera de función
eso es un poco molesto
Promise {_U: 0, _V: 0, _W: null, _X: null}¿Cómo puedo arreglar esto?
Suponiendo que obtiene la respuesta en el formato esperado, debe devolver el valor en lugar de asignarlo.
async function getStock(productId, erp_code) { const itemsStock = await fetch(`${GET_STOCK}${productId}`, requestOptions) .then(response => response.json()) .then(result => result[erp_code][0].LotQTY) .catch(error => console.log('error', error)); console.log(itemsStock); return itemsStock; } Además, puede usar el enfoque async-await en lugar de .then y .catch chain:
async function getStock(productId, erp_code) { try { const response = await fetch(`${GET_STOCK}${productId}`, requestOptions); const result = await response.json(); const itemsStock = result[erp_code][0].LotQTY; console.log(itemsStock); return itemsStock; } catch (error) { console.log({ error }); } }