자바스크립트로 약속하기
자바스크립트 코드에서 Promise에 들어가기 전에 아이디어에 대해 이야기해 봅시다.
자바스크립트의 약속은 실생활에서의 약속과 같습니다. 예를 들어, 아버지가 딸에게 사무실에서 돌아오는 동안 초콜릿을 가져오겠다고 약속한 다음 그 약속을 이행해야 합니다. 아버지는 초콜릿을 가져오지 않는다.
약속이란 무엇입니까? 약속을 만드는 방법
Promise는 자바스크립트 코드에서 비동기 호출에 대한 응답 후에 생성되는 객체입니다. 이를 통해 비동기 호출이 작동하고 약속의 성공 또는 실패와 같은 동기 값으로 반환할 수 있습니다.
약속에는 세 가지 상태가 있습니다 ...
자바스크립트로 Promise를 만들어 봅시다.
Promise는 resolve 및 reject라는 두 개의 인수가 있는 콜백 함수를 사용하는 Promise 함수에 의해 생성됩니다.
let createPromise = new Promise((resolve,reject)=>{
// promise defination
})
이제 이 약속 함수 내에서 실제 약속을 정의해야 합니다. 해결된 약속의 예를 들어 보겠습니다. 거부에 언급된 메시지.
let createdPromise = new Promise((resolve ,reject)=>{
let flag = true ;
if(flag){
resolve("Promise Created")
}else{
reject("Promise Not Created")
}
})
Promise Created // for flag = true
Promise Not Created // for flag =false
그렇다면 어떻게 그 값을 가져와서 콘솔에 출력할 수 있을까요? , 우리는 약속과 상호 작용해야하므로 해결을 위해 실행될 .then() 내부의 모든 것을 사용합니다. 거부 값을 얻으려면 .catch()를 사용합니다.
let flag = true ;
if(flag){
resolve("Promise Created")
}else{
reject("Promise Not Created")
}
}).then((message) =>{
console.log(message) // prints Promise Created ( if flag=true )
}).catch((message)=>{
console.log(message) // prints Promise Not Created ( if flag=false )
})
콜백과 비슷하지만 더 체계적이고 깔끔한 방법이 있습니다.
Promise는 API에서 일부 데이터를 가져오고 .then() 내부의 데이터로 작업을 수행하는 데 오랜 시간이 걸리거나 Promise가 거부된 경우 .catch() 내부에서 오류가 발생하는 작업이 필요할 때 사용하기에 매우 좋습니다.
Promise가 콜백을 어떻게 대체합니까?
콜백의 예와 코드에 표시된 대로 작동하는 방법을 살펴보겠습니다.
var flag = true
function getUserName(callback,errorCallback){
if(flag){
callback("UserName")
}else{
errorCallback(" failed to get UserName ")
}
}
getUserName( ("message")=>{
console.log("success"+message) // print success Username (if flag = true)
},(error)=>{
console.log("rejected"+message) // print rejected failed to get Username (if flag = false)
} )
이것을 약속으로 구현합시다
var flag = true
function getUserName(){
return new Promise((resovle , reject )=>{
if(flag){
resolve("UserName")
}else{
reject(" failed to get UserName ")
}
})
}
getUserName().then( ("message")=>{
console.log("success"+message) // print success Username (if flag = true)
}).catch((error)=>{
console.log("rejected"+message) // print rejected failed to get Username (if flag = false)
} )
콜백과 매우 유사하지만 더 읽기 쉽고 .then() 함수를 사용하여 약속에 따라 쉽게 Channing을 수행할 수 있습니다.
Promise는 여기까지입니다. 마음에 드셨기를 바랍니다.
Reference
이 문제에 관하여(자바스크립트로 약속하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sushilmod/promise-in-javascript-1co텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)