[英]How can I optimize this javascript method code?
In checkData method I am checking 2 API's status as fulfilled or rejected and based on that I am sending API Data and FailFlag.在 checkData 方法中,我正在检查 2 个 API 的状态是已完成还是已拒绝,并基于此发送 API 数据和 FailFlag。 How can i optimize it as I have used if else statements.
我如何优化它,因为我已经使用了 if else 语句。
const checkData = (data, allData, failFlag) => {
if (data && data[0].status === 'fulfilled' && data[1].status === 'fulfilled') {
if (data[0].value && data[1].value) {
allData.push(...data[0].value, ...data[1].value);
failFlag = 'NONE';
}
} else if (data[0].status === 'rejected' && data[1].status === 'fulfilled') {
allData.push(...data[1].value);
failFlag = 'INTERNAL';
} else if (data[0].status === 'fulfilled' && data[1].status === 'rejected') {
allData.push(...data[0].value);
failFlag = 'EXTERNAL';
console.log('All data with fail flag', allData, failFlag);
} else {
Promise.reject('Both are rejected');
failFlag = 'ALL';
}
return { errorFlag: failFlag, accounts: allData };
};
I'm not sure why you are passing in failFlag
, because you're never using that variable.我不确定您为什么要传入
failFlag
,因为您从不使用该变量。 I'm also not sure why you have written Promise.reject('Both are rejected');
我也不确定你为什么写
Promise.reject('Both are rejected');
. . However, the code can be simplified as follows:
但是,代码可以简化如下:
const checkData = ([{status:s0, value:v0}, {status:s1, value:v1}]=[{},{}], allData) => {
let errorFlag = 'NONE';
let f0 = s0 === 'fulfilled';
let f1 = s1 === 'fulfilled';
if(f0) allData.push(...v0);
if(f1) allData.push(...v1);
if(!f0 && !f1) errorFlag = 'ALL';
if(!f0 && f1) errorFlag = 'INTERNAL';
if( f0 && !f1) errorFlag = 'EXTERNAL';
return { errorFlag, accounts: allData };
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.