最近在学函数式编程,总总不能体会它的好处,而且看了几个礼拜,还没有产出一行可以上生产的代码,所以想用最日常的过程式的代码,请教下各位大佬,看看如何优化
// import {message} from 'antd'
// import {fetchApi} from '@/api'
// import moment from 'moment'
// const [detail, setDetail] = React.useState()
const validator = async () => {
// do something
}
const getDetail = async (params) => {
await validator();
try{
const res = await fetchApi({name: 'name', ...params, id: 1})
if (res.code >= 200 && res.code < 400) {
const {list, obj} = res.data
const {date1, num1 = 1, num2, ...objRest} = obj
const formData = {
list: list?.map(item => {
const {p1, ...itemRest} = item
return {
...itemRest,
p2: p1
}
}),
obj: {
...objRest,
date1: date1 && moment(date1).format("YYYY-MM-DD"),
num1: Number(num1),
num2: Number(num2),
}
}
setDetail(formData)
} else {
throw Error(res.msg)
}
} catch (err) {
message.error(err?.message || '请求错误')
}
}
这个应该是前端最基础的接口处理了,基本上囊括了我会碰到的各种问题。我感觉能用 ramdajs 或者 lodash/fp 等函数库把这个函数用函数式编程优化了,基本上就 fp 通关了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.