1.0.8 • Published 3 years ago

async-series-iter v1.0.8

Weekly downloads
57
License
ISC
Repository
-
Last release
3 years ago

自执行串联函数

说明

  • 适用场景 多函数(包含异步函数)调用过程需要记住每个函数执行状态(增加日志或缓存)
  • 适用自定义读流可以拿到具体状态,并且使得异步函数变为同步函数。
  • 仅为学习目的

使用

    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)

获取指定索引的值

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago