Web scraping 正常值延迟计算的结束链
我希望下面的函数获取url并使用Web scraping 正常值延迟计算的结束链,web-scraping,ocaml,Web Scraping,Ocaml,我希望下面的函数获取url并使用lambdasoup返回一个soup节点,换句话说,我希望类型为:val do\u get:string->soup节点=。使用bind操作符(>>=)我可以等待计算完成,但这总是会返回另一个延迟的计算。我希望能够通过将延迟计算转换为正常值来结束链。我能做什么 let do_get url = let uri = Uri.of_string url in Cohttp_async.Client.get uri >>= fun (_, bo
lambdasoup
返回一个soup节点,换句话说,我希望类型为:val do\u get:string->soup节点=
。使用bind操作符(>>=)
我可以等待计算完成,但这总是会返回另一个延迟的计算。我希望能够通过将延迟计算转换为正常值来结束链。我能做什么
let do_get url =
let uri = Uri.of_string url in
Cohttp_async.Client.get uri
>>= fun (_, body) ->
Cohttp_async.Body.to_string body
>>= fun s -> parse s
您可以使用
Deferred.peek
将延迟值转换为正常值。如果你的程序需要调用Scheduler.go
,大概是这样的永不返回(Scheduler.go())
在现实世界的ocaml中有一章解释了如何使用异步库
您可以使用
Deferred.peek
将延迟值转换为正常值。如果你的程序需要调用Scheduler.go
,大概是这样的永不返回(Scheduler.go())
在现实世界的ocaml中有一章解释了如何使用异步库