¿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.
 

Hadrien Rivere

Delta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
10 Feb 2017
Mensajes
505
muestra el código para ver que quieres hacer.
 
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.
 

YeltsinReyes

Zeta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
16 Feb 2010
Mensajes
1.911
Haz un console.log(data); a ver que trae!
 

Hadrien Rivere

Delta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
10 Feb 2017
Mensajes
505
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

Alfa
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
21 Abr 2018
Mensajes
21
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

Delta
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
10 Feb 2017
Mensajes
505
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

Alfa
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios!
Desde
21 Abr 2018
Mensajes
21
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.
 

Crea una cuenta o accede para comentar

Debes ser un miembro para poder comentar

Crear cuenta

Crea una cuenta en nuestra comunidad

Acceder

¿Ya tienes una cuenta? Accede aquí


Arriba