Dados los ejemplos de código a continuación, ¿hay alguna diferencia en el comportamiento y, de ser así, cuáles son esas diferencias?
return await promise
async function delay1Second() {
return (await delay(1000));
}
return promise
async function delay1Second() {
return delay(1000);
}
Según tengo entendido, el primero tendría manejo de errores dentro de la función asíncrona, y los errores saldrían de la Promesa de la función asíncrona. Sin embargo, el segundo requeriría un tic menos. ¿Es esto correcto?
Este fragmento es solo una función común para devolver una Promesa como referencia.
function delay(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
async
de tu segundo ( return promise
) ejemplo.
promise.then(() => nestedPromise)
aplanaría y "seguiría" el nestedPromise
. Es interesante cómo es diferente de las tareas anidadas en C # donde tendríamos que Unwrap
hacerlo. En una nota al margen, parece que las await somePromise
llamadas Promise.resolve(somePromise).then
, en lugar de solo somePromise.then
, tienen algunas diferencias semánticas interesantes.