본문으로 건너뛰기
yceffort
PostsSeriesTagsAbout🧪 Research
EN

Tweaks

theme
accent palette
film grain
minimal mode
BACK TO INDEX
◆ ESSAY
--min
--year
KOoriginal

mailMail icongithubtwitter
yceffort
•
© 2026
•
https://yceffort.kr
BACK TO INDEX
◆ ESSAY

Javascript - Promise

avatar
yceffort
2019-05-21 · 2분
2min
2019year
KOoriginal
javascript

Promise

new Promise(executor)

executor는 resolve및 reject 인수를 전달할 실행함수를 의미한다. 실행함수는 resolve와 reject를 받아 즉시 실행된다. 실행함수는 보통 비동기 작업을 시작한 후, 모든 작업을 끝내면 resolve를 호출해서 Promise를 이행하고, 오류가 발생한 경우 reject를 호출해 거부된다.

Promise는 다음 중 하나의 상태를 가진다.

  • 대기(pending): 이행되거나 거부되지 않는 초기 상태
  • 이행(fullfiled): 연산이 성공적으로 완료됨
  • 거부(rejected): 연산이 실패

promise

Promise.all(iterable)

iterable내에 모든 프로미스를 이행하는데, 대신 어떤 프로미스가 거부를 하게 되면 즉시 거부하는 프로미스를 반환한다. 모든 프로미스가 이행되는 경우, 프로미스가 결정한 값을 순서대로 배열로 반환한다.

Promise.race(iterable)

iterable내에 가장 빠르게 이행/거부 한 값을 반환한다.

Promise.reject()

주어진 이유로 거부하는 Promise 객체를 반환한다

Promise.resolve()

주어진 값으로 이행하는 Promise를 반환한다. then이 있는 경우, 반환된 프로미스는 then을 따라가고 마지막 상태를 취한다.

function myAsyncFunction(url) {
  return new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest()
    xhr.open('GET', url)
    xhr.onload = () => resolve(xhr.responseText)
    xhr.onerror = () => reject(xhr.statusText)
    xhr.send()
  })
}

관련 글

  • #javascript#performance#v8

    실행하지 않는 JavaScript를 10MiB까지 늘려봤다

    호출하지 않는 함수가 10MiB 들어 있으면 얼마나 손해일까. 바이트가 만든 비용과 코드 형태가 만든 비용을 갈라 855회 측정했다. 미호출 선언은 MiB당 약 21ms로 CPU를 4배 늦춰도 늘지 않았고, 파일을 읽자마자 실행되는 초기화 코드는 MiB당 201ms를 메인 스레드에 얹었다. 실제 라이브러리에서는 import만 해도 모듈 평가가 실행됐다.

    2026-09-16·54분
  • #nodejs#javascript

    『npm Deep Dive』가 2026년 세종도서 학술부문에 선정되었습니다

    『npm Deep Dive』가 2026년 세종도서 학술부문에 선정되었습니다. 함께 써주신 분, 만들어주신 분, 읽어주신 분들께 감사드립니다.

    2026-09-11·1분
  • #turbopack#nextjs#bundler

    Next.js turbopack에서 싱글톤이 두 개가 됐다: scope hoisting 버그와 순환 import

    Next.js 16 turbopack 프로덕션 빌드에서 모듈 스코프 싱글톤이 런타임에 두 개가 됐다. 같은 동기 구간에서 조건 판정이 뒤집히고, 응답이 도착해도 타임아웃이 나는 증상을 번들 산출물로 추적한 기록. scope hoisting의 부분 병합, 순환 import, 이미 고쳐져 있던 upstream 버그, 그리고 뒤늦게 돌린 단일 변수 실험까지.

    2026-08-19·28분
  • #javascript#animation#web-animations-api

    number-flow를 구형 브라우저로 이식하기: 다섯 가지 결정과 두 가지 번복

    number-flow가 애니메이션을 켜는 최소 버전은 Chrome 125, Safari 17.2다. 이 하한을 Chrome 66과 WebKit 16.4까지 내리는 포크를 만들면서 내린 결정들과, 뒤집게 된 판단 두 가지, 그리고 자동 강등을 포기한 Safari 버그 조사의 기록.

    2026-08-11·44분

새 글을 놓치고 싶지 않으시다면 RSS로 구독해 주세요.

RSS 구독 →

yceffort — 프론트엔드 엔지니어입니다.

← Back to the blogIssue on GitHub →