Skip to content

Functions

getSerialCallContext()

getSerialCallContext<T>(): SerialCallContext<T>

获取当前执行上下文对象

注意:仅支持在函数定义作用域内同步获取!

Type Parameters

Type ParameterDefault type
T extends FnFn

Returns

SerialCallContext<T>

Example

ts
const fn = () => {
  // 传入函数类型获取类型提示
  const ctx = serialCall.getContext<() => number>()
  // 必须在异步开始前同步获取上下文对象
  await sleep(3000)
  // 返回前函数结果
  return ctx.returned
}

serialCall()

serialCall<T>(fns, ...args): SerialCallReturn<T>

串行执行函数列表并返回最终结果,可以通过 serialCall.getContext() 获取执行上下文

Type Parameters

Type ParameterDefault type
T extends FnFn

Parameters

ParameterTypeDescription
fnsT[]函数列表
...argsParameters<T>参数列表

Returns

SerialCallReturn<T>

执行结果,存在异步函数时返回 Promise

Example

ts
const fn1 = () => sleep(3000).then(() => 1)
const fn2 = () => serialCall.getContext().returned + 1
const val = await serialCall([fn1, fn2])
// => 2

Interfaces

SerialCallContext<T>

Type Parameters

Type ParameterDefault type
T extends FnFn

Properties

PropertyTypeDescription
argsParameters<T>执行参数列表 Default []
currentIndexnumber当前执行索引 Default -1
isEndboolean是否末尾函数
isFirstboolean是否首个函数
lengthnumber当前执行任务总长度 Default 0
returned?Awaited<ReturnType<T>>上一个函数返回值

Type Aliases

SerialCallReturn<T>

SerialCallReturn<T> = ReturnType<T> extends infer R ? R extends PromiseLike<any> ? Promise<Awaited<R>> : R : never

Type Parameters

Type ParameterDefault type
T extends FnFn