我试图弄清楚为什么使用Js.Promise
示例
Js.Promise.(
...
)
而使用Json.Decode
示例
Json.Decode.{
...
}
据我了解,.()
打开了Js.Promise
这样我就可以调用其中的任何函数Js.Promise
而无需Js.Promise
作为模块的前缀。
但是有什么作用.{}
呢?
我试图弄清楚为什么使用Js.Promise
示例
Js.Promise.(
...
)
而使用Json.Decode
示例
Json.Decode.{
...
}
据我了解,.()
打开了Js.Promise
这样我就可以调用其中的任何函数Js.Promise
而无需Js.Promise
作为模块的前缀。
但是有什么作用.{}
呢?
两者都将一些模块声明放在范围内,但在包装表达式.{}
时创建了一条记录。.()
对于记录:
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));