ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • What is a Promise?
    Study/JavaScript 2020. 5. 15. 16:34

     

    What is a Promise?

    Promises are objects that represent the eventual outcome of an asynchronous operation. A Promise object can be in one of three states:

    • Pending: The initial state— the operation has not completed yet.
    • Fulfilled: The operation has completed successfully and the promise now has a resolved value. For example, a request’s promise might resolve with a JSON object as its value.
    • Rejected: The operation has failed and the promise has a reason for the failure. This reason is usually an Error of some kind.

    We refer to a promise as settled if it is no longer pending— it is either fulfilled or rejected. Let’s think of a dishwasher as having the states of a promise:

    • Pending: The dishwasher is running but has not completed the washing cycle.
    • Fulfilled: The dishwasher has completed the washing cycle and is full of clean dishes.
    • Rejected: The dishwasher encountered a problem (it didn’t receive soap!) and returns unclean dishes.

    If our dishwashing promise is fulfilled, we’ll be able to perform related tasks, such as unloading the clean dishes from the dishwasher. If it’s rejected, we can take alternate steps, such as running it again with soap or washing the dishes by hand.

    All promises eventually settle, enabling us to write logic for what to do if the promise fulfills or if it rejects.

     

     

     

     


    'Promise'는 비동기 실행의 궁극적인 결과를 나타내는 객체이다.

    Promise 객체는 다음 세 가지 상태 중 하나에 속할 수 있다.

     

    Pending: 초기상태 - 실행이 아직 완료되지 않았다.

    Fulfilled : 실행이 성공적으로 완료되었고, promise는 이제 해결된 value값을 가진다.

                 예를들어, 요청의 promise는 아마 value값으로서 json객체와 함께 해결할 수 있다. (?)

    Rejected: 실행은 실패했고, promise는 실패에 대한 이유를 가지고 있다. 이 이유는 보통 어떤 종류의 오류이다.

     

     

    우리는 promise가 더이상 pending하지 않으면 해결된 것으로 간주한다. 

    이것은 이행되거나 거부된다. 

    식기세척기를 promise로 생각해보자. 

     

    Pending: 식기세척기가 작동하고 있지만 세척주기가 완료되지 않았다.

    Fulfilled: 식기세척기는 세척주기를 마치고 깨끗한 접시로 가득 차 있다.

    Rejected: 식기세척기는 문제가 발생하여(비누를 받지 않았다!) 깨끗하지 않은 접시를 돌려준다.

     

    만약 설거지 promise가 이행된다면, 우리는 식기세척기에서 깨끗한 접시를 내리는 것과 같은 

    관련 없무를 수행할 수 있을 것이다. 

    만약 reject되면 비누로 다시 돌리거나, 손으로 설거지 하는 등 대체적인 조치를 취할 수 있다.

     

    모든 promise들은 결국 해결되어, promise가 이행되거나 거절 될 경우, 

    우리가 무엇을 해야하는지에 대한 논리를 쓸 수 있게 된다. 

     

     

     

     

    출처: 코드카데미

    'Study > JavaScript' 카테고리의 다른 글

    The Node setTimeout() Function  (0) 2020.05.15
    Constructing a Promise Object  (0) 2020.05.15
    Introduction(promise)  (0) 2020.05.15
    Combining Export Statements  (0) 2020.05.14
    Import as  (0) 2020.05.14

    댓글

Designed by Tistory.