@ 无效/ es
基于 ECMAScript ASync 、 生成器和 aync 生成器函数语法超载.
该项目是一个用于整合新自定义计算效果的 Bail 插件 输入 Java 脚本.
默认情况下, 这是 EMAScript ASync 的又一执行 和同源函数,但也可以被扩展.
这个项目是 效果 JS 工具链.
为什么
以下是本地或其他转接器执行中无法获取的内容列表:
- 摘要 API - 可以为您的目的重新实施或修改
- 为更好的性能自定义混凝土 API
- 持久性状态
- 隐性平行主义
- 用于静态分析的衍生程序图表
使用量
抽象界面
$ npm install --save-dev @effectful/es
$ npm install --save @effectful/es-rt
例如:
{
"plugins": ["@effectful/es/transform"]
}
或者说:
$ babel --plugins @effectful/es/transform index.js
默认情况下,它为 @ 无效/ es- t。 。 。 .
它是EcmaScript async的抽象界面的实现,
发电机和同步函数。 界面尚没有文档.
默认执行相当小,可以作为
现在 有一个 importRT 通过一些超载混凝土选项
执行图书馆.
{
"plugins": [["@effectful/es/transform",{"importRT":"my-custom-effects"}]]
}
零配置转换
使用零配置 贝亚尔- 插孔- macros, (中文(简体) ), 或默认启用的任何其他工具(例如: 创建 Reat App 从v2起.
在您想要转录的模块中导入“ @ effectful/ es/ macro” 模块 .
明确的具体执行
$ npm install --save-dev @effectful/es
$ npm install --save @effectful/es-inline-rt
这个. .
{
"plugins": [["@effectful/es/transform",{"inline":true}]]
}
执行速度快得多,但没有任何办法使任何事情过重.
其他选择包括:
loose- 喜欢inline但它也降低了一些 ECMAScript 兼容性 特性使生成的代码更小更快defunct- 狦true状态被编码为数字, 有一个单一 函数可以在州间移动;否则,州是一个州过渡 函数回调topLevel- 狦true将状态过渡函数移出原功能 函数的正文par- 允许隐含的平行主义。 还没用 "入行","出行","上行"
有许多较低级别的选项,如: 配置( j)。 。 。 .
它们的值可以使用 all, (中文(简体) ), file, (中文(简体) ), pure, (中文(简体) ), effectful, (中文(简体) ), generators, (中文(简体) ), async, (中文(简体) ),
asyncGenerators 字段在插件选项中。 例如,使用通用JS模块代替
用于运行时间注射的默认ES:
{
"plugins": [["@effectful/es/transform",{"file":{"modules":"commonjs"}}]]
}
隐性平行主义
如果启用, 编译器将在起始位置找到"par"和"seq" ,用于在平行模式和相继模式 resp 之间切换.
例如:
async function parDemo() {
"par";
const a = await A;
const b = await B(a);
const c = await C;
}
ESLint抱怨没有使用表达式,因此作为替代
这些指令 profile 函数需要单个
字符串字元参数 ("par"或"seq"):
import * as M from "@effectful/es"
async function parDemo() {
M.profile("par");
const a = await A;
{
M.profile("seq")
const b = await B;
const c = await C;
}
}
取消
默认情况下, 运行时间也会添加 M.cancelSymbol 每个属性
回到承诺。 这是一个功能,它试图停止执行
表示相应的同步函数。 取消将推广到
await 如果用这种方法表达,但是没有传播
给孩子们.
还有帮助器功能 M.cancel 它只是调用
promise[M.cancelSymbol]() 如果它存在的话.
自由主义
根据麻省理工学院(麻省理工学院)许可证的规定分发.