1 个不稳定版本

0.1.0 2019年11月8日

#1179 in WebAssembly

MIT 许可证

27KB
462 代码行

Rust crate,用于使用和操作 JS Promise 对象,使用 stdweb。

包含两种主要类型

  • RawPromise,一个 JS Promise 的轻量级包装器。这些与原始的 stdweb::Value 一起工作。它提供 Rust 方法来连接 Promise 和 Rust 函数,处理清理。
  • Promise<TOk, TErr>,一个功能更强大的包装器,可以发送任意的 Rust 类型。

lib.rs:

使用 Rust 代码处理 JavaScript Promise 的库。

此 crate 包含两种主要类型:RawPromise,它是 JS Promise 类型的一个薄包装器,以及 Promise,它帮助使用 Rust 类型处理 Promise。

当前所有连接 Promise 的方法都转换为 then 调用,即使结果可以立即获得。因此,在一个 then 调用中完成尽可能多的同步工作将比多个 then 调用稍微高效一些。

在 Promise 回调中,如果发生 panic 或 JS 错误,库将通过 console.error 打印错误,并从 Promise 返回 null

与 stdweb promises 的比较

  • 截至编写时,stdweb promises 需要一个功能才能访问,且是不稳定的。这个... 也是不稳定的,但不是在功能之后锁定。
  • stdweb promises 尝试与 futures API 兼容,但并不很好地映射到 JS promises 和回调的工作方式。此 crate 暴露了一个与 JS promises API 相似的 API。

依赖关系

~3MB
~69K SLoC