带寓言的F#提供了两个计算表达式,用于处理基于回调的代码:async和promise。
async是idomatic F#,但我不清楚它在浏览器中的运行情况。理想情况下,我将可以在async任何地方使用,因为这使我可以在客户端和服务器之间更好地重用代码。
async在浏览器中有什么限制?promise在服务器上有哪些限制(例如dotnet核心)fetchAPI)注意:除了浏览器API外,我不需要与任何JavaScript互操作。
浏览器中异步的局限性是什么?
async在浏览器中使用时,不能使用Async.RunSynchronously。我认为这是一个限制,因为JavaScript是单线程的。
服务器(例如dotnet核心)上promise的局限性是什么?
您无法promise在服务器上使用,因为.Net或.NetCore不知道这种计算。在.Net或.NetCore服务器上使用异步代码时,您需要使用async。
如果服务器使用Node.js与浏览器相同的限制。
我可以轻松地在两者之间切换吗?(例如包装提取API)
Fetch.Fetch和Fable.Promise中已经使用promise封装了fetch API。
promise {
let! res = fetch "http://fable.io" []
let! txt = res.text()
// Access your resource here
Browser.console.log txt
}
Run Code Online (Sandbox Code Playgroud)
通过打开Fable.Core您也可以访问Async.AwaitPromise和Async.StartAsPromise。
寓言的惯用语是什么?
就我个人而言,我promise之所以仅使用它是因为它现在是JavaScript的本机功能,并且一般而言,promise即使您可以在promise和之间移动,JavaScript库也希望您可以使用async。
| 归档时间: |
|
| 查看次数: |
375 次 |
| 最近记录: |