11
http
의 형식 서명은 다음과 같습니다.왜 http-enumerator에서`http`가 Iteratee입니까?
http :: MonadIO m
=> Request m
-> (W.Status -> W.ResponseHeaders -> Iteratee S.ByteString m a)
-> Manager
-> Iteratee S.ByteString m a
대신이 형식이 아닌 이유는 무엇입니까?
http :: MonadIO m => … -> m a
Iteratee x m a
은 x
유형의 항목 스트림을 사용하는 모나 딕 파서와 같습니다. http
의 콜백이 Iteratee
인 것은 응답 본문을 사용하므로 의미가 있습니다.
그러나 http
자체는 입력을 소비하지 않는 것 같습니다. httpLbs 함수는 http
(Data.Enumerator에서 정의 됨)을 사용하여 http
을 실행합니다.
그래서 http
가 입력을 사용하지 않으면 왜 iteratee입니까? MonadIO
액션이 아닌 이유는 무엇입니까?
어떻게'http'가 TCP 연결에서 데이터를 소비하지 않습니까? –
'...'를 사용하여 생략 한 인수가 중요합니다. 하나는 Iteratee를 반환하는 함수입니다. – luqui
@luqui : 나는이 게시물을 편집하여'http'의 전체 서명을 포함하고 콜백 인수가 (내가 말할 수있는 것에서) 입력을 소비한다는 것을 분명히했습니다. 감사. –