解析表格的语法是什么<';t>;在F#中使用寓言?
我正在开发一个用F#编写的vscode扩展,使用Fable编译成javascript。许多api都返回了一个承诺。解析具有返回类型(如F#的解析表格的语法是什么<';t>;在F#中使用寓言?,f#,visual-studio-code,vscode-extensions,fable-f#,F#,Visual Studio Code,Vscode Extensions,Fable F#,我正在开发一个用F#编写的vscode扩展,使用Fable编译成javascript。许多api都返回了一个承诺。解析具有返回类型(如F#的Thenable)的承诺的语法是什么 下面是许多vscode api的示例:看看Ionide是如何实现的: 基本上,看起来Ionide几乎忽略了Thenable的存在,并在其寓言绑定中将每个API调用转换为Promise。它们在中确实有一对toPromise和toThenable函数,但我看不到这些函数在整个存储库中的任何地方都被使用 我没有任何关于寓言
Thenable
)的承诺的语法是什么
下面是许多vscode api的示例:看看Ionide是如何实现的: 基本上,看起来Ionide几乎忽略了
Thenable
的存在,并在其寓言绑定中将每个API调用转换为Promise
。它们在中确实有一对toPromise
和toThenable
函数,但我看不到这些函数在整个存储库中的任何地方都被使用
我没有任何关于寓言的个人经验,因此如果这还不足以回答你的问题,希望其他人能提供更多信息。在对语法进行了一些研究之后,我能够根据rmunn给出的转换Thenable to Promise的线索来理解它
module PromiseUtils =
let success (a : 'T -> 'R) (pr : Promise<'T>) : Promise<'R> =
pr?``then`` (unbox a) |> unbox
let toPromise (a : Thenable<'T>) = a |> unbox<Promise<'T>>
let toThenable (a : Promise<'T>) = a |> unbox<Thenable<'T>>
是的,我确实看到了这些例子。然而,我并没有看到承诺是如何被解决的(就像你提到的,承诺没有被使用),因为类型不匹配。我一定错过了什么。
let result = commands.getCommands ()
|> PromiseUtils.toPromise
|> PromiseUtils.success (fun item ->
let firstOne = item.Item 1
console.log(firstOne))