发布于 2026-01-06 4 阅读
0

使用 Proxymise 实现你的异步代码 DEV 的全球展示挑战赛,由 Mux 呈现:展示你的项目!

代理你的异步代码

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

如果你最近写过不少 JavaScript 代码,那么你很可能接触过Promise以及它们集成到语言中的异步函数。现在有了Proxymise,你的代码可以变得更加简洁!

什么

Proxymise 是一个 JavaScript 库,它允许你包装返回 Promise 的函数,以便你可以调用它们解析为的对象的方法。

为什么

使用同步函数时,可以直接使用返回值。这使您可以为库编写流畅的接口。

select("*").from("myTable").where("x > 10");
Enter fullscreen mode Exit fullscreen mode

虽然异步函数对某些类型的调用有所帮助,但它仍然会使你的代码变得混乱。

Proxymise 希望解决这个问题。

如何

then而不是像这样写链式语句:

fetch("example.com")
.then(r => r.json())
.then(r => r.record.id)
.then(id => ...);
Enter fullscreen mode Exit fullscreen mode

或者await像这样的列表:

let r = await fetch("example.com");
r = await r.json();
const {id} = r.record;
...
Enter fullscreen mode Exit fullscreen mode

它允许你封装你的 Promise 对象并调用其上的方法,从而使你的接口更加流畅。

const newFetch = proxymise(fetch);

const {id} = await newFetch("example.com").json().record;
Enter fullscreen mode Exit fullscreen mode

它通过在 Promise 仍在进行中时立即返回代理对象来实现这一点。这些代理对象随后会等待 Promise 解析完成,并在之后执行函数调用。

结论

Proxymise 是一种通过消除样板代码来简化异步库使用的快捷方法。

文章来源:https://dev.to/kayis/proximise-your-async-code-5c15