⊗jsSpPrmEx 163 of 294 menu

Situações excepcionais em Promises em JavaScript

Agora vamos aprender a lidar com situações excepcionais que ocorrem dentro de uma Promise. Em caso de ocorrência de tal situação, devemos rejeitar a Promise usando uma função de rejeição especial, que é automaticamente passada como segundo parâmetro da função da Promise:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

Dentro da função da Promise, devemos chamar resolve se tudo ocorreu normalmente, ou reject se ocorreu uma situação excepcional:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // dados da promise } else { reject('erro na promise'); // seu texto de erro } }, 3000); });

Em seguida, no método then você deve passar não uma, mas duas funções como parâmetros: a primeira será executada se a Promise for resolvida com sucesso (foi resolvida), e a segunda - se for rejeitada com erro (foi rejeitada):

promise.then( function(result) { console.log(result); // exibirá o resultado da promise }, function(error) { console.log(error); // exibirá o texto do erro } );

Geralmente, o código acima é escrito de forma mais compacta, assim:

promise.then(function(result) { console.log(result); // exibirá o resultado da promise }, function(error) { console.log(error); // exibirá o texto do erro });

Faça um código assíncrono que irá gerar números aleatórios de 0 a 5. Encapsule tudo isso em uma Promise. Deixe a Promise retornar como resultado o resultado da divisão de um pelo número gerado. Deixe a Promise ser rejeitada com erro se ocorrer uma divisão por zero, e com sucesso em todos os outros casos.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar