原因中。()和。{}之间有什么区别?

时间:2018-04-17 05:39:13

标签: reason bucklescript

我试图找出使用Js.Promise的示例使用

的原因
Js.Promise.(
    ...
)

Json.Decode的示例使用

Json.Decode.{
    ...
}

根据我的理解,.()会打开Js.Promise,以便我可以在Js.Promise内调用任何函数,而无需使用Js.Promise作为模块前缀。

但是.{}做了什么?

1 个答案:

答案 0 :(得分:2)

两者都在范围内放置了一些模块声明,但是.{}创建了一条记录,而.()包含了一个表达式。

记录:

let point = json =>
  Json.Decode.{
    x: json |> field("x", float),
    y: json |> field("y", float)
  };

相当于:

let point = json =>
  {
    x: json |> Json.Decode.field("x", Json.Decode.float),
    y: json |> Json.Decode.field("y", Json.Decode.float)
  };

同样,对于表达式:

let _ =
  Js.Promise.(then_(value => resolve(Js.log(value)), okPromise));

相当于:

let _ =
  Js.Promise.then_(value => Js.Promise.resolve(Js.log(value)), okPromise));
相关问题