Dados os exemplos de código abaixo, há alguma diferença no comportamento e, em caso afirmativo, quais são essas diferenças?
return await promise
async function delay1Second() {
return (await delay(1000));
}
return promise
async function delay1Second() {
return delay(1000);
}
Pelo que entendi, o primeiro teria tratamento de erros dentro da função assíncrona, e os erros surgiam na promessa da função assíncrona. No entanto, o segundo exigiria um tique a menos. Isso está correto?
Este snippet é apenas uma função comum para retornar uma promessa para referência.
function delay(ms) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}
asyncde sua segunda ( return promise) amostra.
promise.then(() => nestedPromise)achataria e "seguiria" o nestedPromise. Interessante como é diferente de tarefas aninhadas em C # onde teríamos que fazê- Unwraplo. Em uma nota lateral, parece que await somePromise chama Promise.resolve(somePromise).then, em vez de apenas somePromise.then, com algumas diferenças semânticas interessantes.