Yes, this is possible, something like this:
[<AutoOpen>]
module JsonExtensions =
open IntelliFactory.WebSharper.JQuery
type JQuery with
[<JavaScript>]
static member GetJsonAsync(url : string, ?data : obj) =
Async.FromContinuations <|
fun (ok, _, _) ->
let cont (r : obj, _ : string) = ok (r :?> _)
match data with
| Some d -> JQuery.GetJSON(url, d, cont)
| None -> JQuery.GetJSON(url, cont)
|> ignore
//…
[<JavaScript>]
override this.Body =
Button [Text "Click"]
|>! OnClick (fun _ _ ->
async {
let! (res : string) = JQuery.JQuery.GetJsonAsync("http://api.twitter.com/1/help/test.json?callback=?" )
JavaScript.Alert(res)
}
|> Async.Ignore
|> Async.StartImmediate
) :> _