Promise 단순화
<html lang="en">
<head>
<meta charset="UTF-8">
<title>promise-polyfilltitle>
head>
<body>
<script type="text/javascript"> //Promise-polyfill function Promise(fn) { var state = 'pending'; var doneList = []; this.then = function(done, fail) { switch(state) { case 'pending': doneList.push(done); return this; break; case 'fulfilled': done(); return this; break; case 'rejected': fail(); return this; break; } // , doneList.push(done); // return this; } function resolve(newValue) { state = 'fulfilled'; // var value = newValue; // , donelist setTimeout(function(){ var value = newValue; for (var i = 0; i < doneList.length; i++){ var temp = doneList[i](value); if(temp instanceof Promise){ var newP = temp; for(i++; i < doneList.length; i++){ newP.then(doneList[i],failList[i]); } }else{ value = temp; } } }, 0); // doneList.forEach(function(fulfill) { // value = fulfill(value); // }); } function reject(newValue) { state = "rejected"; setTimeout(function() { var value = newValue; var tempRe = failList[0](value); // reject promise, fail , done fail promise if(tempRe instanceof Promise) { var newP = tempRe; for(i = 1;i < doneList.length; i++) { newP.then(doneList[i],failList[i]); } }else { // promise, fail , doneList value = tempRe; doneList.shift(); failList.shift(); resolve(value); } }, 0); } fn(resolve, reject); } var promise = new Promise(function(resolve) { // console.log('hehehe') resolve(); }); promise.then(function() { console.log('resolve') }); script>
body>
html>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Promise 단순화텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.