카지노 도박 설명 자바스크립트 약속
16389 단어 webdevtutorialjavascript
우리는 모두 JavaScript의 비동기식 기능을 좋아한다.사실 우리는 그들을 너무 사랑해서 때때로 지나치게 방종할 수도 있다.그리고 우리는 이런 코드 "pyramid of doom를 얻었다.
Image Credit
이 코드를 다시 읽고 어떻게 작동하는지, 그리고 어떤 순서로 작동하는지 알고 싶지 않을 수도 있기 때문에 흔히'리셋 지옥'이라고 불린다.사실 너희 팀에서도 이렇게 하는 사람이 없다.
위의 예는 몇 가지 어려움이 있다.
간단하고 단일한 용도의 함수를 사용하도록 권장합니다. 이 함수들은 명확한 코드를 작성하고 한 걸음 한 걸음 이해할 수 있도록 해 줍니다.한동안의 생각 끝에 나는 약속이 도박장에 가는 것과 같다는 것을 깨달았다.카지노에서 당신의 은행 계좌의 금액을 수정(응, 삭제)하지만, 일련의 약속은 특정한 순서에 따라 데이터를 수정할 것이다.
그럼 시작합시다.리셋 경험이 없으면 my explanation on the principles of callbacks 를 참조하십시오.약속에 대한 기술적 설명을 더 알고 싶으면 this guide 또는 this guide 또는 를 참조하십시오.
무엇이 약속입니까?
주말에 카지노에 가서 휴가를 보낸다고 가정해 봐.너의 주머니에 2주일의 월급이 있는데, 너는 매 순간을 누릴 것이다. 왜냐하면 너는 그것을 마지막 구석까지 압송했기 때문이다.아니면 운이 좋으시겠어요? 결국 돈을 땄어요?
너는 호텔 방에 도착한 후에 도박장으로 가라.모든 종류의 게임은 현금을 받기 때문에 현금인출기에서 1000달러를 찾아 시작해야 한다.
우리 한 걸음 물러서서 이 장면을 생각해 봅시다.현금은 카지노 이외의 모든 일에 쓰일 수 있지만, 카지노 내부의 한 가지를 의미한다. 돈을 다 쓰기 전에 남은 게임 수량이다.주말 동안 현금 금액은 더욱 줄어들 것이다.그것도 늘어날 수 있지만, 이번 주말에 1000달러를 넘지 않겠다고 자신에게 약속했다.
위의 그림에서 당신의 남은 금액은 어떻게 한 게임에서 다른 게임으로 전달되는지 주의하십시오.
약속은 아직 존재하지 않지만 미래에 존재할 가치의 위치를 차지한다.이것은 함수를 명확하게 이해하고 시작과 끝을 이해할 수 있게 합니다.위에서 보듯이promises는 연속적인 비동기 함수를 뚜렷하게 표시하고 입력과 출력을 명확하게 하는 좋은 방식이다.
비동기 함수의 곱셈을 다음 함수에 직접 전달하겠다고 약속합니다.이 함수는 이전 함수가 값을 반환한 후에 바로 시작됩니다.또는 오류를 되돌리면 다른 함수를 실행합니다.우리는 잠시 후에 이 의외의 사건을 다시 토론할 수 있다.
너의 첫 번째 약속을 만들어
실제로 두 가지 유형의 약속이 있는데 그것이 바로 생산자와 소비자다.
생산자는 체인 중의 첫 번째 약속이고, 소비자들은 체인 중의 이전 약속의 결과를 기다린다.이런 상황에서 ATM기는 생산자이다. 왜냐하면 게임을 할 돈이 필요하기 때문이다.
그 밖에 약속은 세 가지 상태 중 하나가 있다.
우리는 그것을 코드로 바꾸자.이것은 프로미스 문법이다.
let withdraw = new Promise(function(resolve,reject){
let amount = visitATM(1000);
return resolve(amount)
});
다음은 코드에 대한 한 줄 한 줄 설명입니다.첫 번째 줄 - 두 가지 가능한 결과를 포함하는 약속 선언: 이행 또는 거부
2행-ATM에서 인출하는 기능
세 번째 줄 - visitaTM 함수의 값을 사용하여 설정된 상태로 돌아가기
다른 비동기 코드와 마찬가지로, 이 방법은 코드가visitaTM 함수의 상태를 기다릴 수 있도록 합니다.만약 이것이 아직 완성되지 않았다면, 계속하는 것은 무의미한 것이다.
여러 약속 링크
카지노에서 호랑이 기계, 포커, 룰렛을 하고 싶다고 가정해 보세요.하나하나 현금으로 구매해야 합니다.물론 카드에 너무 많은 돈을 걸고 다 썼다면 아래의 어떤 게임도 할 수 없을 것이다.
만약 네가 먼저 호랑이 기계를 가지고 놀고 싶다면.
let withdraw = new Promise(function(resolve,reject){
let amount = visitATM(1000);
return resolve(amount)
});
withdraw.then(function(amount){
let slotResults = playSlots(amount, 100);
if(slotResults <= 0)
throw err;
return slotResults;
});
사용을 약속하다.그리고 문법을 사용하여 이전 약속이 해결되거나 완성된 후에 무슨 일이 일어나야 하는지 보여 줍니다.이런 상황에서 약속을 철회한 최종 결과는 금액에 포함된다.그래서 우리가 다음 약속을 세울 때 사용한다.그리고 (), 우리는 매개 변수의 양을 앞에 대응하는 결과로 명명합니다.
또 다른 중요한 주의사항은playslots는 허구의 기능이다.우리는 이것이 두 가지 논점이 필요하다고 생각한다. 네가 가지고 있는 총 금액과 네가 걸고 싶은 금액이다.
이 공약 체인에 또 다른 단계인 포커 게임을 추가합시다.그것의 작업 원리는 호랑이 기계의 약속과 유사하다.이 시합에서 우리는 걸고 싶은 만큼 내기를 한다.
withdraw.then(function(amount){
let slotResults = playSlots(amount, 100);
if(slotResults <= 0)
throw err;
return slotResults;
})
.then(function(slotResults){
let pokerResults = playPoker(slotResults);
if(pokerResults <= 0)
throw err;
return pokerResults;
})
그래서 우리는 뿔호랑이 기계를 가지고 남은 돈을 포커 게임에 쏟아부었다.만약 네가 나에게 묻는다면, 나는 매우 침략적이라고 생각한다.이것은 이 부분의 코드맵입니다.
우리가 지금 이미 모든 돈을 다 잃었다고 상상해 봅시다.비록 우리는 원래 더 많은 게임을 하려고 했지만, 우리는 이미 돈이 없다.이 체인에는 더 많은 약속이 있을 수 있지만, 우리는 그것들을 해결할 수 없을 것이다.
대신 우리가 포커를 한 후에 0달러가 남았기 때문에, 이 약속은 실수를 할 것이다.그것은 여전히 해결되었지만 거절 상태에 있다.
이게 바로catch () 방법은 매우 편리하다.Catch는 약속 체인에서 발생할 수 있는 모든 오류를 처리할 수 있도록 합니다.우리는 모든 리셋을 위해 오류 처리 프로그램을 작성할 필요가 없다.
네가 모든 돈을 다 걸고 나면 곧장 술집으로 갈 것이라고 상상해 보자.다음은 코드의 내용입니다.
withdraw.then(function(amount){
let slotResults = playSlots(amount, 100);
if(slotResults <= 0)
throw err;
return slotResults;
})
.then(function(slotResults){
let pokerResults = playPoker(slotResults);
if(pokerResults <= 0)
throw err;
return pokerResults;
})
.catch(function(e){
goToBar();
});
어떤 약속이 거절되든지 간에 이 일망타진 성명은 작용할 것이다.약속에 객체 사용
지금까지 우리의 약속은 단지 하나의 숫자만 되돌아왔다.그러나 그들은 체인을 따라 다른 유형의 데이터를 전달할 수도 있다.
네가 호랑이 기계를 가지고 놀아서 돈을 좀 땄다고 상상해 보자.호랑이 기계는 직접 현금을 보내지 않는다. 그것은 너에게 표를 한 장 줄 것이다. 너는 잠시 후에 환전할 수 있다.이것은 ticket-in, ticket-out system라고 불린다.
현재, 당신은 전체 체인의 두 가지 가치인 수중의 현금량과 입장권 가치를 추적해야 한다.이런 상황에서 대상이 가장 효과적이다.
사슬 속의 두 번째 약속을 수정합시다. 당신은 그중에서 호랑이 기계를 가지고 놀고 있습니다.
withdraw.then(function(amount){
let ticketValue = playSlots(amount, 100);
if(ticketValue <= 0)
throw err;
return {tickets: ticketValue, cash: amount};
});
이제 두 개의 속성을 가진 대상을 되돌려줍니다.다음은 그의 모습이다.카드 테이블은 현금으로 칩만 교환할 수 있기 때문에 다음 약속에서 이 속성을 사용해야 합니다.
withdraw.then(function(amount){
let ticketValue = playSlots(amount, 100);
if(ticketValue <= 0)
throw err;
return {tickets: ticketValue, cash: amount};
})
.then(function(slotResults){
let pokerResults = playPoker(slotResults.cash);
if(pokerResults <= 0)
throw err;
return {tickets: slotResults.tickets, cash: pokerResults};
})
.catch(function(e){
goToBar();
});
다음 사항에 유의하십시오.최신 강좌 가져오기
너는 이 해석을 좋아하니?HTML, CSS 및 JavaScript의 최신 시각화 자습서를 보려면 CodeAnalogies blog 을 보십시오.
Reference
이 문제에 관하여(카지노 도박 설명 자바스크립트 약속), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kbk0125/javascript-promises-explained-by-gambling-at-a-casino-4jdo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)