我需要发送 api 调用以从多个来源获取数据。我得到的数据采用不同的格式(数组、对象、嵌套数组)。我感觉很好的一件事是有一个功能可以为我提取我需要的部分。
现在我想知道我是否应该拥有这个提取功能,或者只是在我使用它时提取我需要的数据。(简单地说:哪个是更好的做法?)
我个人更喜欢后一种,因为我不需要来回确定我需要提取哪一部分数据。例如。
在线提取
const data = get("example.com").data[0].Users;
使用函数提取数据
const data = getData("example.com";
const getData = async(url)=>{
const rawData= await get(url);
switch(url){
case EXAMPLE_URL:
return rawData.data[0].Users;
case OTHER_EXAMPLE_URL:
return rawData.data;
case OTHER_URL:
return rawData.data[0].Enum;
}
}
我会把它分成多个功能。Imo,调用者不需要知道要传递什么 url 来获得一些不同的值。
而且您不知道最终是否会从同一个 url 获取两个不同的值。
//maybe using a simple utility
const getUrlPath = (url, ...path) => {
let fetchPath = path.reduceRight((next, key) => obj => next(obj[key]), identity);
return () => get(url).then(fetchPath);
}
const identity = v => v;
//and then creating the different functions to get the different values
const getExample = getUrlPath(EXAMPLE_URL, "data", 0, "Users");
const getOther = getUrlPath(OTHER_EXAMPLE_URL, "data");
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句