Entendendo는 JavaScript를 약속하지 않습니다.
8937 단어 webdevnodejavascripttypescript
Uma promise é o objeto retornado de uma chamada assíncrona que possui a promessa de um valor, seja ele um valor futuro, immediato ou que nunca existirá. São exatamente estes os estados de uma 약속:
보류 중(미정): ainda não foi finalizada, mas também não foi rejeitada
이행(realizada): sucesso na operação.
거부됨(rejeitado): falha na operação.
Quando uma promise é realizada significa que a chamada assíncrona foi finalizada e não foi encontrado nenhum erro na sua execução, neste momento ela terá um valor, caso essa chamada seja rejeitada, ela terá um motivo (erro).
약속의 결정
let promise = new Promise((resolve, reject) => {
console.log("Comando de dentro da promise")
});
console.log(promise)
Perceba que por ela não ter sido resolvida ainda, ela apresenta o status de pending.
Resolvendo uma 약속
promise = new Promise((resolve, reject) => {
resolve(10)
});
console.log(promise)
Agora passando o valor 10 para a função resolve teremos a promise com o status de fulfilled e valor 10.
Rejeitando uma promise
promise = new Promise((resolve, reject) => {
reject("Erro na promise")
})
console.log(promise)
주의할 점은 약속을 지키지 않고 동기를 부여할 수 있다는 점에 유의하십시오.
Trabalhando com 약속 na prática
Na prática usamos promise para retorno de uma chamada de API, uma escrita ou leitura de arquivo assíncrona, uma Consulta ao banco de dados utilizando JavaScript, enfim, são N situações, mas todas envolvem um retorno que é assíncrono.
Vamos utilizar a API do JSON Placeholder para buscarmos dados de forma assíncrona.
fetch('https://jsonplaceholder.typicode.com/users/1')
.then(response => response.json())
.then(user => console.log(user))
É utilizado aqui a função fetch(nativa do JavaScript) para fazer a chamada para a API de usuários, o retorno dela é uma promise que ao ser resolvida(quando a chamada assíncrona terminar a execução) chamará a primeira instrução then que tem como função transformar 응답은 JSON으로 이루어지며 결과는 다음과 같습니다.
Sendo assim na segunda instrução then teremos o JSON com os dados de usuário sendo passados como parâmetro para ser utilizado dentro desta função, neste caso os dados são exibidos no console.
약속의 오류
fetch('https://jsonplaceholder.typicode.com/users/1')
.then(response => response.json())
.then(user => {
if(user.id == 2)
console.log(user)
else
throw new Error("Não é o usuário de ID 2")
}).catch((error) => console.log(error.message))
Aqui fazemos a mesma chamada feita anteriormente buscando pelo usuário de
id = 1
, então dentro do bloco then é feita uma verificação em que caso o id seja 2 são exibidos os dados do usuário, caso contrário é lançada uma exceção, e esta é tratada no bloco catch, em que neste exemplo será exibida no console, mas em uma aplicação real geralmente seria neste ponto que ela seria enviada para o arquivo de log do sistema, ou apresentado algum tipo de mensagem para o usuário comunicando sobre o erro.고려사항
Note que nesta forma de uso das promise temos a possibilidade de aninhar várias funções de callback para uma mesma promise, isso ajuda muito na questão de organização do código, pois de acordo com a arquitetura utilizada pode-se aplicar diferentes regras de negócio em cada bloco 그 다음에.
mas 존재는 tratar를 약속으로 사용하여 async/await 또는 qual falaremos em um próximo post를 사용할 수 있습니다.
Obrigado por ter lido até aqui, qualquer dúvida ou sugestão deixa aqui nos commentários. 음 포르테 아브라소!
Reference
이 문제에 관하여(Entendendo는 JavaScript를 약속하지 않습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alexcvcoelho/entendendo-promises-no-javascript-44bd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)