Quiero tomar dos recuperaciones diferentes, ponerlas en una forma variable para que sus datos importantes puedan usarse para algo más que simplemente registrar los datos.
Estoy tratando de hacer esto a través de la respuesta asíncrona de la ventana, sin embargo, actualmente estoy en un callejón sin salida porque, aunque lo que estoy haciendo funciona en un hilo de datos, no funciona en dos debido a que el flujo del cuerpo JSON ya se leyó. error.
let RESPONSE = window.Response.prototype.json; window.Response.prototype.json = async function () { if (!('https://a/')) return RESPONSE.call(this) let x = await RESPONSE.call(this); if (!('https://b/')) return RESPONSE.call(this) let y = await RESPONSE.call(this); for (let detect in x) { if (x[detect] !== y[detect]) { console.log(x[detect]); console.log(y[detect]); } } return x; return y; };¿Cómo puedo mantener los datos en una forma variable que pueda usarse para algo como esto?
for (let detect in x) { if (x[detect] !== y[detect]) { console.log(x[detect]); console.log(y[detect]); }pero al mismo tiempo poder tener ambas variables definidas al mismo tiempo? Esto significaría que necesitaría superar el error de transmisión del cuerpo y al mismo tiempo mantener ese código central. ¿Cómo puedo hacer eso?
¿Esto te ayuda?
async function doTwoRequestsAndCompareStatus() { const res1 = await fetch("https://fakejsonapi.com/fake-api/employee/api/v1/employees"); const res2 = await fetch("https://fakejsonapi.com/fake-api/employee/api/v1/employees"); const data1 = await res1.json(); const data2 = await res2.json(); console.log('both were equal?', data1.status === data2.status); } // Don't forget the actually call the function 😉 doTwoRequestsAndCompareStatus();Aunque recomendaría esto, porque es más limpio y rápido, ya que las búsquedas se ejecutan al mismo tiempo y no secuencialmente.
async function doTwoRequestsAndCompareStatus() { const [data1, data2] = await Promise.all([ fetch("https://fakejsonapi.com/fake-api/employee/api/v1/employees").then(r => r.json()), fetch("https://fakejsonapi.com/fake-api/employee/api/v1/employees").then(r => r.json()), ]); console.log('both were equal?', data1.status === data2.status); } // Don't forget the actually call the function 😉 doTwoRequestsAndCompareStatus();Sin embargo, si encuentra el primero más fácil de entender, le recomendaría usarlo 👍.