gpt4 book ai didi

javascript - 函数式 javascript 读取、异步、写入结果

转载 作者:行者123 更新时间:2023-11-29 16:03:20 26 4
gpt4 key购买 nike

我现在正在阅读大部分关于 fp 的充分指南。但我无法弄清楚如何正确组合这些函数。

const R = require('ramda');
const {IO, Future} = require('ramda-fantasy');

const read = () => IO(() => 'hello');
const write = (data) => IO(() => {
console.log(data)
return data;
});

const process = (data) => Future((reject, resolve) => {
return setTimeout(() => resolve(data), 0);
});

组合函数的最佳方式是什么:读取 -> 处理 -> 写入?

最佳答案

将 ios 更改为 futures。

const R = require('ramda');
const {Future} = require('ramda-fantasy');

const read = () => Future((reject, resolve) => resolve('hello'));

const write = (data) => Future((reject, resolve) => {
console.log(data)
resolve(data);
});

const process = (data) => Future((reject, resolve) => {
return setTimeout(() => resolve(data), 0);
});

read.chain(process)
.chain(write)
.fork(console.warn, console.log);

Futures 就像 async ios,所以这两种类型之间的提升没有太大意义。如果你真的想以不同的方式对待它们,你可以将 monad 嵌套到 IO> 中,正如 bergi 所建议的那样。

关于javascript - 函数式 javascript 读取、异步、写入结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37218372/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com