Mi código se ve así
const TIME_REPEAT = 62e5 const getCities = () => fetch('mocky url') .then(response => { console.log(response) return response.json() }) .then(json => { console.log('hello json:', json) return json }) const cities = setInterval(getCities, TIME_REPEAT) console.log('hello cities:', cities)producción
hello cities: Timeout { _idleTimeout: 6200000, _idlePrev: [TimersList], _idleNext: [TimersList], _idleStart: 4013, _onTimeout: [Function: getCities], _timerArgs: undefined, _repeat: 6200000, _destroyed: false, [Symbol(refed)]: true, [Symbol(asyncId)]: 14375, [Symbol(triggerId)]: 0 }La última declaración de la consola debería mostrar el json que quiero pasar a mi enrutador express. Pero no obtengo el resultado deseado.
La razón por la que usé setInterval fue porque no devuelve una promesa. Quiero obtener las ciudades json y pasarlas a mi enrutador express.
Lo que hice sin setInterval
const cities = fetch('mocky url') .then(response => { console.log(response) return response.json() }) .then(json => { console.log('hello json:', json) return json })este objeto de la ciudad devolvió una promesa. Pero necesito un json adecuado. ¿Para qué puedo usar o hacer aquí?
SetInterval o decir que el enfoque de sondeo no es una buena idea. Eso es una especie de patrón anti cuando se trata de este tipo de manejo asíncrono.
Puede ir con async/await o promesas como se muestra a continuación:
const exec = async function(){ const cities = await getCities(); console.log(cities) } exec()o
getCities.then((cities)=>{ console.log(cities) })