2

Tengo el siguiente codigo.

const prueba = async (valor) => {
    return await valor;
};

function testP(){
   return prueba("prueba");
}

console.log(testP());

Al imprimirlo en pantalla me muestra:

introducir la descripción de la imagen aquí

Quiero acceder al PromiseResult y devolverlo, pero no estoy pudiendo hacerlo.

Juan Rivera
  • 1,510
  • 5
  • 20
MCcover
  • 37
  • 6

1 Answers1

0

El uso de async y await facilita el tratar las promesas, pero hay que aclarar algunos conceptos: una función asíncrona siempre devuelve una promesa, aunque su lógica no requiera realmente asincronía:

//prueba es una función async, por tanto siempre devuelve una promesa
const prueba = async (valor) => {
    return await valor; //aquí await es innecesario, no hace nada
};


function testP(){
   return prueba("prueba"); //devuelves la promesa que se generó en prueba
}

console.log(testP()); //intenta imprimir una promesa

testP().then(valor => console.log('tengo el valor', valor));

async function testP2() {
  let resultado = await prueba("prueba2");
  console.log("dentro de la función asíncrona tengo",resultado);
  return resultado; //la función es asíncrona, se vuelve a meter en una promesa
}

console.log("tengo una promesa de nuevo", testP2());
Pablo Lozano
  • 45,934
  • 7
  • 48
  • 87