我试图弄清楚为什么使用 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));
关于reason - Reason 中的 .() 和 .{} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49870614/