解析表格的语法是什么<';t>;在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函数,但我看不到这些函数在整个存储库中的任何地方都被使用 我没有任何关于寓言

我正在开发一个用F#编写的vscode扩展,使用Fable编译成javascript。许多api都返回了一个承诺。解析具有返回类型(如F#的
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))