async-series-iter
v1.0.8
Published
自执行串联函数
Downloads
21
Readme
自执行串联函数
说明
- 适用场景 多函数(包含异步函数)调用过程需要记住每个函数执行状态(增加日志或缓存)
- 适用自定义读流可以拿到具体状态,并且使得异步函数变为同步函数。
- 仅为学习目的
使用
const MyIter = require('async-series-iter')
const num = x => x + x
const multi = x => x * 2
const multi1 = x => x * 3
const asyncMulti = async x => {
for (let i = 0; i < 1000000000; i++) {}
return x * 10
}
const asyncMulti1 = async x => {
for (let i = 0; i < 1000000000; i++) {}
return x + 1
}
const myIter = new MyIter(this, [num, multi, asyncMulti, multi1, asyncMulti1], 1)
const start = +new Date()
myIter.on('data', data => {
console.log('data', data, typeof data === 'object' && data.then)
})
myIter.on('end', () => {
const end = +new Date()
console.log(`总耗时: ${end - start}; 最后的值: ${myIter.getLastValue()}`)
console.log('over')
})
myIter.on('error', err => console.log('error'))
说明
const myIter = new MyIter(context, list, arg) MyIter 构造函数传入三个参数
- context 函数执行的上下文环境
- list 待执行函数列表
- arg 初始化参数(建议传对象形式)
API
getLastValue()
获取最终结果值
getValue(index)
获取指定索引的值