2017-05-23 3 views
0

ID 목록을 Tasks의 목록으로 변환하고 동시에 실행합니다 (Promise.all과 유사). 저는 신청서를 알고 있지만 알 수없는 수의 과제를 적용하여 최상의 접근 방법이 될 것이라고 생각하지 않습니다.λ : folktale data.task - 알 수없는 작업을 적용하십시오.

Task의 배열을 포함하는 Task이 있습니다.

Task.of([Task.of(1), Task.of(2)]) 

그들 모두를 실행하는 단일 작업으로 아래 작업을 접어 어쨌든 있는가, 아니면 데이터 변환을 처리 할 수있는 더 좋은 방법이있다.

스 니펫에는 예제를 제공하려는 경우 복사 할 수있는 data.Task이 포함되어 있습니다.

+1

'작업'이란 무엇입니까? 어떤 도서관을 사용하고 있습니까? – Bergi

+0

@Bergi, 라이브러리에 대한 링크를 추가했습니다. (folktale data.task) – synthet1c

+0

질문에 직접 답변하는 것을 피하십시오. 대답은 대답에 머물게하십시오. 도움을 주신 덕분에 – Amy

답변

1

control.async.parallel

// Task([Task]) 
 
Task.of([0, 1, 2]) 
 
    .map(t => t.map(Task.of)) 
 
    .fork(console.error, console.log)
<script src="https://codepen.io/synthet1c/pen/bWOZEM.js"></script>

http://folktalegithubio.readthedocs.io/en/latest/api/data/task/

은 당신이 찾고있는 정확하게이다.

나는 응용 프로그램을 알고 있지만 최선의 접근 방법이 될 것이라고 생각하지 않으므로 알 수없는 작업을 적용하고 싶습니다.

다시 배열하지 않아야합니다. 배열은 통과 할 수 있으며 sequenceA은 원하는대로 정확하게 처리 할 수 ​​있습니다 (상당히 비효율적 임). 그것이 folktale에서 구현되었거나 목록이 없거나 control.applicative 인 경우.

control.monad.sequence은 적용 순서와 동일하게 작동해야하지만 ap 대신에 불필요하게 chain을 사용해야합니다. 그리고 data.task은 어쨌든 ap이 동일한 의미론을 가지고 chain에서 파생 될 수 없다는 점에서 문제가 있습니다.

+0

. control.async.parallel은 완벽합니다. – synthet1c

관련 문제