これはおそらく簡単な質問であり、SO で同様の質問を見たことがありますが、まだ行き詰まっています。
別のブログのコンテンツを取得して自分のページに表示する HTTP 呼び出しを実行しようとしています。これは何よりも学習演習です。
これが私のハンドラーです
blog :: App1Handler ()
blog = do
contents <- Requester.getUrl "http://someblog.com/"
heistLocal (bindString "contents" contents) . render $ "blog"
Requester.getUrl には署名 getUrl :: String -> IO T.Text があります
そして、私が返すエラーは
src/Main.hs:50:15:
予想されるタイプHandler App1 App1 t0' with actual type
IO T.Textと一致しませんでし
た 'getUrl' の呼び出しの戻り値のタイプ
'do' ブロックのステートメント:
コンテンツ <- getUrl "http:/ /someblog.com/"
式:
do { content <- getUrl "http://someblog.com/";
heistLocal (bindString "contents" コンテンツ) . $「ブログ」をレンダリングする}
私が収集したものから、私は IO モナドの内部で立ち往生しており、タイプ Handler App1 App1 t0 が必要です。私はいくつかの場所にliftIOを貼り付けて実験しましたが、これについてはかなり混乱しています。
誰かが私を正しい方向に向けることができますか?
ありがとう!