자바스크립트 promise 관련 질문입니다.

조회수 414회
function delay(a) {
    setTimeout(() => {
        console.log(a);
    }, 1000);
}

function prompt(a) {
    console.log(a);
}

var temp = function() {
    return new Promise((resolve) => {
        delay('first');
        resolve();
    });
};

temp().then(() => {
    prompt('second');
});

first, second 순으로 출력하려고 하는데,

second 부터 출력이됩니다.

delay(), promt() 함수를 수정하지 않고 first second 순으로 출력할 수 있을까요?

  • 안될것 같은데요. then에서 어거지로 코드 실행을 미루지 않는한... 편집요청빌런 2020.4.2 15:32
  • 윗 댓글 인정합니다. 뭔가 Promise를 그럴싸하게 써 보려면 resolve를 delay 함수에 넘겨서 delay안에서 resolve를 호출하거나 delay 자체를 아예 Promise를 리턴하게 만들어서 temp 이후에 then으로 체인 연결해서 쓰는걸 추천드립니다. doodoji 2020.4.2 16:57
  • 답변 감사합니다. 조영민 2020.4.2 19:14

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)