¿Ifelse no está permitido en Fetch?

  • Autor Autor Usuario eliminado 232346
  • Fecha de inicio Fecha de inicio
U

Usuario eliminado 232346

Lo del título, estoy trabajando con Fetch y no puedo utilziar IfElse, lo demás funciona perfecto.
Y en la documentación no encuentro nada al respecto.
 
muestra el código para ver que quieres hacer.
 
muestra el código para ver que quieres hacer.
A modo de ejemplo:
Aquí el JS donde se trabaja con las promesas:
JavaScript:
                .then(resp => resp.text())
                .then(data => {
                    if (data == 1) {
                        M.toast({
                            console.log("Ok");
                        });
                    } else {
                        M.toast({
                            console.log("Error");
                        });
                    }
                })

y el PHP:

Insertar CODE, HTML o PHP:
$prueba = 10;
if(prueba == 10){
echo 1;
} else {
echo 2;
}

Lo que realiza realmente es una inserción a la BD (funcionando), pero lo hice con un ejemplo muy simple para que se entienda la manera con la que estoy trabajando.
 
Haz un console.log(data); a ver que trae!
 
A modo de ejemplo:
Aquí el JS donde se trabaja con las promesas:
JavaScript:
                .then(resp => resp.text())
                .then(data => {
                    if (data == 1) {
                        M.toast({
                            console.log("Ok");
                        });
                    } else {
                        M.toast({
                            console.log("Error");
                        });
                    }
                })

y el PHP:

Insertar CODE, HTML o PHP:
$prueba = 10;
if(prueba == 10){
echo 1;
} else {
echo 2;
}

Lo que realiza realmente es una inserción a la BD (funcionando), pero lo hice con un ejemplo muy simple para que se entienda la manera con la que estoy trabajando.


Simplifica tu codigo usando Async await

JavaScript:
const myfuncion = async () => {
  const req = await fetch('url')
  const data = await req.json()

  if (data == 1) {
    M.toast({
      console.log("Ok");
    });
  } else {
    M.toast({
      console.log("Error");
    });
  }

}



P.D porque en M.toast en el console .log lo estas metiendo como objeto? no es mejor dejar el if y el console.log? para que te sirve m.toast? porque desde el front estas haciendo inserciones a la db 😱?
 
Simplifica tu codigo usando Async await

JavaScript:
const myfuncion = async () => {
  const req = await fetch('url')
  const data = await req.json()

  if (data == 1) {
    M.toast({
      console.log("Ok");
    });
  } else {
    M.toast({
      console.log("Error");
    });
  }

}



P.D porque en M.toast en el console .log lo estas metiendo como objeto? no es mejor dejar el if y el console.log? para que te sirve m.toast? porque desde el front estas haciendo inserciones a la db 😱?
pasaste la respuesta a json, seria mas bien asi:
JavaScript:
const myfuncion = async () => {
    let data = await (await fetch("url")).text();
    if(1 == Number(data.trim())){
        console.log("Ok");
    }else{
        console.log("Error");
    }
}
 
pasaste la respuesta a json, seria mas bien asi:
JavaScript:
const myfuncion = async () => {
    let data = await (await fetch("url")).text();
    if(1 == Number(data.trim())){
        console.log("Ok");
    }else{
        console.log("Error");
    }
}
Se pueden usar ambos metodos solo que el json() tal cual es un json y el .text() es simple texto plano. Ademas si queremos iterar los datos no podremos utilizar el .text().


(Prueba de que No podemos iterar si usamos text())

JavaScript:
(async () => {
        const req = await fetch('https://jsonplaceholder.typicode.com/todos')
        const res = await req.text()
        res.map(e => {
            console.log(e)
        })
    })()

(Prueba de que Si podemos iterear si usamos json())
JavaScript:
(async () => {
        const req = await fetch('https://jsonplaceholder.typicode.com/todos')
        const res = await req.json()
        res.map(e => {
            console.log(e)
        })
    })()
 
Última edición:
Se pueden usar ambos metodos solo que el json() tal cual es un json y el .text() es simple texto plano. Ademas si queremos iterar los datos no podremos utilizar el .text().


(Prueba de que No podemos iterar si usamos text())

JavaScript:
(async () => {
        const req = await fetch('https://jsonplaceholder.typicode.com/todos')
        const res = await req.text()
        res.map(e => {
            console.log(e)
        })
    })()

(Prueba de que Si podemos iterear si usamos json())
JavaScript:
(async () => {
        const req = await fetch('https://jsonplaceholder.typicode.com/todos')
        const res = await req.json()
        res.map(e => {
            console.log(e)
        })
    })()
bro en este caso la respuesta es de tipo texto, no requiere iteración, el resultado de tu codigo seria un error de tipo y de ahí no pasaría.
 
bro en este caso la respuesta es de tipo texto, no requiere iteración, el resultado de tu codigo seria un error de tipo y de ahí no pasaría.
Si bien es innecesario el uso de JSON en este caso, no sería un error como tal, los números son considerados "JSON Válido"
1603826670457.webp
1603826687861.webp
 
Atrás
Arriba