소프트웨어디자인 썸네일형 리스트형 [소프트웨어 디자인] 작업들은 어떻게 연결할 수 있을까요? * 본포스팅은 에서 발췌한 내용으로 작성되었습니다. 플루언트 인터페이스는 객체 지향 프로그래밍의 스타일 중 하나로, 객체의 메서드가 this를 반환해서 메서드 호출을 연결할 수 있게 하는 방식입니다. 예를 들어, 만약 우리의 클래스가 다음과 같다면, 다음과 같이 작성할 수 있습니다. 심지어 다음과 같이 할 수도 있습니다. Array의 플루언트 인터페이스를 사용하면 일반적으로 중간 결과를 임시 변수에 할당하는 것보다 더 읽기 쉬운 표현식을 작성할 수 있습니다. 예를 들면, Array.filter(..)..map(..).와 같은 식입니다.만약 Pledge에 주어진 원래 작업이 성공적으로 완료되면, Pledge는 resolve 콜백을 호출해서 값을 제공해줄 것입니다. 우리는 이 값을 첫 번째 then에.. 더보기 [소프트웨어 디자인] 프로미스는 어떻게 작동하나요? * 본포스팅은 에서 발췌한 내용으로 작성되었습니다. 프로미스가 어떻게 작동하는지 살펴보겠습니다. 이 짧은 프로그램은 두 개의 다른 콜백(resolve: 모든 것이 성공했을 때 실행됨, reject: 문제가 발생했을 때 실행됨)을 인수로 받는 새로운 Pledge를 생성합니다. 최상위 콜백은 우리가 제일 먼저 수행하려는 부분, 즉, 지연이 예상되기 전에 실행하고자 하는 작업을 수행합니다. 여기서는 지연 목적으로 setTimeout의 지연을 0으로 설정해서 작업을 전환하겠습니다. 이 작업이 재개되면 resolve 콜백을 호출해서 지연 이후에 일어날 일을 트리거합니다. 이제 then이 있는 라인을 살펴보겠습니다. 이것은 방금 생성한 Pledge 객체의 메서드이며, 지연 후에 수행하려는 작업을 나타냅니다. t.. 더보기 [소프트웨어 디자인] 비동기 실행은 어떻게 관리할까요? * 본포스팅은 에서 발췌한 내용으로 작성되었습니다. 자바스크립트는 이벤트 루프를 중심으로 구축되었습니다. 모든 작업은 큐의 항목으로 표시되며, 이벤트 루프는 큐의 앞쪽에서 작업을 가져와 실행하고 새로 생성된 작업을 큐의 뒤쪽에 추가하여 나중에 실행하는 식의 작업을 반복적으로 수행합니다. 한 번에 하나의 작업task만 실행되며 각 작업에는 고유한 호출 스택이 있지만 작업 간에 객체를 공유할 수 있습니다 대부분의 작업은 작성된 순서대로 사용 가능한 모든 코드를 실행합니다. 예를 들어, 다음 한 줄짜리 프로그램은 Array.forEach를 사용해서 배열의 각 요소를 차례로 출력합니다. 그러나 몇 가지 특별한 내장 함수를 사용하면 Node가 작업을 전환하거나 실행 큐에 새로운 작업을 추가할 수 있습니다. 예.. 더보기 이전 1 다음