¿Ifelse no está permitido en Fetch?

  • Autor Usuario eliminado 232346
  • 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.
 
U

Usuario eliminado 232346

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.
 

Hadrien Rivere

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
10 Feb 2017
Mensajes
1.030
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 :eek:?
 

bits4me

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
21 Abr 2018
Mensajes
81
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 :eek:?
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");
    }
}
 

Hadrien Rivere

Dseda
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
10 Feb 2017
Mensajes
1.030
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:

bits4me

Beta
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
21 Abr 2018
Mensajes
81
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.
 

OmarCoder

Gamma
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Desde
30 Sep 2014
Mensajes
187
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.png
1603826687861.png
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba