2016-07-17 6 views
5

JS 약속이 es5의 일부인지 여부를 알고 싶습니다. 그렇다면 이전 브라우저에서 가끔씩 작동하지 않는 이유와 동일한 브라우저에 polyfill을 추가해야하는 이유가 있습니다. 또한이 경우 polyfill을 추가해야합니까, es5 one 또는 es6입니까? 나는 이것에 관해 약간의 혼란을 가지고있다.ES5 대 ES6 약속

+0

ES5에는 약속이 없었습니다. jQuery 나 Angular와 같은 라이브러리는 독점적 인 약속을 구현했습니다. – jfriend00

+0

ES5에는 언어의 일부로 약속이 없습니다. ES5의 경우 약속은 단지 설계 패턴 일뿐입니다. ES5에는 실제로 여러 가지 유형의 약속을 구현하는 많은 라이브러리가 있습니다. 심지어는 디자인 패턴이기 때문에 직접 구현할 수도 있습니다. – slebetman

+0

@slebetman 약속 구현에 대한 간단한 예제를 제공해 주시겠습니까? –

답변

19

ES5에는 약속이 없었습니다. jQuery 또는 Angular와 같은 라이브러리에는 자체적 인 비표준 약속 구현이 있습니다.

인기가있는 ES5와 함께 사용하기위한 구현은 Bluebird (ES6 표준과 호환 가능) 및 Q (원래 ES6 표준과 호환되지 않았지만 해당 방향으로 움직이고있는 것 같음) 및 RSVP입니다.

추가 기능을 추가하기 때문에 기본 약속이있는 경우 방해가되지 않는 실제 폴리필도 아닙니다.

ES6 약속을위한 몇 가지 순수 폴리 필이 있습니다. 다음은 회신 요청의 하위 집합 인 https://github.com/stefanpenner/es6-promise입니다. 특정 polyfill 라이브러리의 추천에 대한 요구 Are there still reasons to use promise libraries like Q or BlueBird now that we have ES6 promises?

여기에 내가 그에 대해 언급하지 않도록 스택 오버 플로우에 오프 주제 간주됩니다

당신이 여기 읽을 수로 polyfill 이상을 사용하는 이유가 있습니다 .

+0

@ jfriend00이 코드는 http://codepen.io/tijmenbruggeman/pen/LVOqBq로 인터넷에서 찾았습니다. 오해의 소지가 있습니까? –

+1

@ParamSingh - 그 코펜 핀은 여기서 무엇을해야합니까? – jfriend00

+0

@KirillSlatin - 나는 "맞춤식 및 비표준"으로 이미 바 꾸었습니다. 오히려 어리석은 말보다는 의미있는 내용에 에너지를 쓰고 싶었습니다. – jfriend00

관련 문제