Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asynchronous F#-该类型应具有Async类型<';a>;但是有字符串->;Asnyc<';a>;相反_Asynchronous_F#_Httpwebrequest_Streamreader - Fatal编程技术网

Asynchronous F#-该类型应具有Async类型<';a>;但是有字符串->;Asnyc<';a>;相反

Asynchronous F#-该类型应具有Async类型<';a>;但是有字符串->;Asnyc<';a>;相反,asynchronous,f#,httpwebrequest,streamreader,Asynchronous,F#,Httpwebrequest,Streamreader,在无耻地从Tomas Petricek的博客中窃取了一段代码片段后: 具体来说,这个(并对其进行一些修改): 我尝试使用它执行以下操作,最后一行出现错误: 该类型应改为类型Async 我在谷歌上搜索了错误,但找不到任何显示我的特殊问题的东西 let postData = "userid=" + userId + "&password=" + password + "&source=" + sourceId + "&version=" + version let url =

在无耻地从Tomas Petricek的博客中窃取了一段代码片段后: 具体来说,这个(并对其进行一些修改):

我尝试使用它执行以下操作,最后一行出现错误:

该类型应改为类型
Async

我在谷歌上搜索了错误,但找不到任何显示我的特殊问题的东西

let postData = "userid=" + userId + "&password=" + password + "&source=" + sourceId + "&version=" + version
let url = postUrlBase + "100/LogIn?" + postData
Async.RunSynchronously (downloadPage(url, postData));;
另外,如何修改代码,使其异步下载一个无结尾的字节流(但在每个字节突发之间偶尔暂停),而不是一个字符串?我如何集成读取这个字节流?我意识到这不仅仅是一个问题,但由于它们都是密切相关的,我认为一个问题可以节省一些时间

提前感谢,

鲍勃

另外,由于我对F#还不熟悉,请随时对我的代码进行任何修改/建议,以显示如何以更实用的方式完成。我真的在努力摆脱我的C#心态,所以我很感激任何人希望分享的建议


编辑:我不小心粘贴了错误的代码片段。我确实修改了Tomas的代码片段,但忘记了它。

当我尝试运行您的代码
下载页面(url,postData)
时,它不起作用,因为
下载页面
需要两个单独的字符串<代码>下载页面url postData是预期的内容

如果您将
let
绑定更改为tuple表单,或者
let downloadPage(url:string,postData:string)
您的调用也会起作用

解释你为什么会犯这样的错误要复杂得多。Curried表单创建一个函数,该函数在您的情况下返回函数或
string->string->Async
。因此,编译器看到您传递了单个参数(元组毕竟是单个项),并且看到结果必须是
string->Async
,这与
Async
不兼容。它可能发现的另一个错误(在我的例子中也是如此)是
string*string
string
不兼容。确切的错误是
预期的字符串,但找到了'a*'b

这就是我遇到的问题:

Async.RunSynchronously (downloadPage(url, postData));;
这就是持续随机猜测后的效果:

Async.RunSynchronously (downloadPage url postData);;

尽管如此,我不知道为什么这一改变解决了这个问题。想法?

我不小心粘贴了我使用的错误代码段。我确实修改了Tomas的片段,但忘了。既然你是唯一一个尝试过的人,请随意将你的答案更改为我在下面发布的内容,我会给你的。当我自己的问题不能得到最初的回答时,回答我自己的问题会有点可疑@比克:好了,也解释了差异,包括我在初次提交时收到和引用的不同错误背后的逻辑。谢谢,对最初的错误表示抱歉。
Async.RunSynchronously (downloadPage url postData);;