简体   繁体   English

如何优化这个 javascript 方法代码?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM