终止者
当消费者过早终止时,通知可执行人.
安装
yarn add @async-generators/terminator
这个包裹 main a 的切入点 commonjs dis.
这个 module a 的切入点 es2015 模块。 两者均需要本地的合成-生成器支持,或用网包加载器下编译.
阿庇语Name
终止者( 来源)
terminator() 返回一个可重复的,当重排时,将源可重排并抓取呼叫到 return当符合要求的消费者(for, (中文(简体) ), for-await终止迭代,然后 return 调用方向已更改 next(Symbol.for("terminated"))原样 source 可执行性然后通过检查返回值来确定是否终止 yield 看它是否等值 Symbol.for("terminated")· ;
源头必须有一个 [Symbol.asyncIterator] 或者说 [Symbol.iterator] 属性。 如果两者都在场 [Symbol.asyncIterator] 已使用.
示例
实例.js
const terminator = require("@async-generators/terminator").default;
async function* source() {
for (let i = 0; i < 10; i++) {
let terminated = (yield i) == Symbol.for("terminated");
if (terminated) {
console.log("clean-up on aisle five!");
return;
}
}
}
async function main(){
for await (let item of terminator(source())){
if(item > 4){
break;
}
console.log(item);
}
}
main().catch(console.log);
用最新的节点执行 :
node --harmony-async-iteration example.js
输出 :
0
1
2
3
4
clean-up on aisle five!
字体
此库已完全输入, 可以使用 :
import terminator from '@async-generators/terminator');
ts-node --harmony_async_iteration example.ts