为了账号安全,请及时绑定邮箱和手机立即绑定

API 处理有条件?

API 处理有条件?

慕田峪9158850 2022-08-27 09:34:24
我正在尝试基于2个条件运行API调用,我不确定最好的方法。我尝试用和语句执行以下操作:if..elselet data;if (condition == true) {  if (condition == true) {    LocalCall1() // mutate data variable  } else {   ApiCall1() // mutate data variable    }  } else {   ApiCall1() // mutate data variable }但是,是40行长,所以我不能只是将其复制并粘贴到其他两个块中。此外,此语句位于函数中,因此我被告知不能在此函数中创建另一个函数,因为它会使测试变得困难。ApiCall1()if...else最好的方法是什么?
查看完整描述

4 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

请尝试以下操作:

(firstCondition && secondCondition)? LocalCall1(); : ApiCall1();


查看完整回答
反对 回复 2022-08-27
?
大话西游666

TA贡献1817条经验 获得超14个赞

你不能像这样合并2 if/else语句吗?


if (condition1 === true && condition2 === true) {

    LocalCall1()

} else {

    ApiCall1()

}

编辑:


if (localStorage.getItem('constants') && JSON.parse(localStorage.getItem('constants')).version === serverVersion) {

    const data = JSON.parse(localStorage.getItem('constants')).data; 

} else {

    const { response } = await apollo.query({ query });

    if (!response) return {};

    localStorage.setItem('constants', JSON.stringify({ version: serverVersion, data: response }));

  }


查看完整回答
反对 回复 2022-08-27
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

二元的。。。


if(condition1 && condition2) res = 3;

if(!condition1 && condition2) res = 2;

if(condition1 && !condition2) res = 1;

if(!condition1 && !condition2) res = 0;

...然后,无论您想根据res做什么。


查看完整回答
反对 回复 2022-08-27
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

我知道这对你来说为时已晚,但它将来可能会帮助别人。

创建一个布尔标志,并在每次需要执行 ApiCall1() 时将其设置为 True。在外部 if 条件之外,如果此标志为 true,则调用 ApiCall1()。


查看完整回答
反对 回复 2022-08-27
  • 4 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信