Javascript Promise를 실행하는 방법에 대해 여쭤봅니다.

let myFirstPromise = new Promise((resolve, reject) => { // We call resolve(...) when what we were doing asynchronously was successful, and reject(...) when it failed. // In this example, we use setTimeout(...) to simulate async code. // In reality, you will probably be using something like XHR or an HTML5 API. setTimeout(function(){ resolve(“Success!“); // Yay! Everything went well! }, 250); }); myFirstPromise.then((successMessage) => { // successMessage is whatever we passed in the resolve(...) function above. // It doesn’t have to be a string, but if it is only a succeed message, it probably will be. console.log(“Yay! ” + successMessage); });

위 코드는 MDN의 Promise 예제에서 가져온 겁니다.

myFirstPromise를 정의하는 것까지는 이해가 가는데, 실행하는 부분에 보면 단지 myFirstPromise.then() => 처럼 사용하고 있습니다.

메쏘드를 실행하려면 myFunc() 와 같이 뒤에 괄호를 붙여서 실행하는데 Promise는 뒤에 괄호도 없이 단순히 인스턴스 이름만 입력해도 곧바로 실행이 되는 것인지요?

인스턴스는 함수가 아닌데 인스턴스 이름만 가지고 실행하는 문법이 너무 이상하네요.

보통은 인스턴스 내부의 함수를 실행하는 것이고 그래서 보통 아래와 같이 실행하지 않나요?

instance.func()질문이 조금 어려운데 결국 promise를 실행하는 방법이 새로운 문법인 것인지 궁금하네요.

    1개의 답변이 있어요!

    • let myFirstPromise = new Promise()

      new Promise() 가 우변에 있으니 myFirstPromise 는 객체입니다.

      즉 myFirstPromise.then 에서 then 메소드는 myFirstPromise 객체의 메소드입니다.

      일반적인 객체와 사용법이 다른 부분은 없습니다. then 메소드의 파라미터로 함수를 넘겨줄 수 있다는 점 외에는 특별한 부분이 없습니다.