FP-TS消耗的IO

时间:2019-07-23 14:28:58

标签: fp-ts

此代码中forEach部分的惯用fp替代是什么

const ios: IO<void>[] = [...]
ios.forEach(io => io());

有些文档使用sequence_中的Foldable,但在fp-ts@2.0.3中不再可用。

编辑:

我能做的最好的是

import { array } from 'fp-ts/lib/Array';

array.sequence(io)(ios)();

但是sequence收集结果,而我实际上与void[]没有任何关系。

1 个答案:

答案 0 :(得分:1)

我在想同样的事情。以下似乎有效。

import { IO, io } from 'fp-ts/lib/IO';
import { traverse_ } from 'fp-ts/lib/Foldable';
import { array } from 'fp-ts/lib/Array';
import { identity } from 'fp-ts/lib/function';
import { log } from 'fp-ts/lib/Console';

const actions: Array<IO<void>> = [log('hello'), log('world')];
const action: IO<void> = traverse_(io,array)(actions,identity);