代理你的异步代码
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
如果你最近写过不少 JavaScript 代码,那么你很可能接触过Promise以及它们集成到语言中的异步函数。现在有了Proxymise,你的代码可以变得更加简洁!
什么
Proxymise 是一个 JavaScript 库,它允许你包装返回 Promise 的函数,以便你可以调用它们解析为的对象的方法。
为什么
使用同步函数时,可以直接使用返回值。这使您可以为库编写流畅的接口。
select("*").from("myTable").where("x > 10");
虽然异步函数对某些类型的调用有所帮助,但它仍然会使你的代码变得混乱。
Proxymise 希望解决这个问题。
如何
then而不是像这样写链式语句:
fetch("example.com")
.then(r => r.json())
.then(r => r.record.id)
.then(id => ...);
或者await像这样的列表:
let r = await fetch("example.com");
r = await r.json();
const {id} = r.record;
...
它允许你封装你的 Promise 对象并调用其上的方法,从而使你的接口更加流畅。
const newFetch = proxymise(fetch);
const {id} = await newFetch("example.com").json().record;
它通过在 Promise 仍在进行中时立即返回代理对象来实现这一点。这些代理对象随后会等待 Promise 解析完成,并在之后执行函数调用。
结论
Proxymise 是一种通过消除样板代码来简化异步库使用的快捷方法。
文章来源:https://dev.to/kayis/proximise-your-async-code-5c15