响应视图和业务逻辑之间的本机通信

时间:2018-08-23 18:42:35

标签: reactjs react-native

我有一个按下按钮的视图-

false

业务逻辑将进行API调用,看起来像这样-

import {businessLogic} from './BusinessLogic';

onButtonPressed = async() => {
   let response = await businessLogic();

   if (response) {
      //success
   } else {
      //error
   } 
}

ApiClient看起来像这样-

import { APICall} from './ApiClient'; 

export const businessLogic= async () => {

    try {
        let response = await APICall();
        if (response.status === 200) {
            const body = await response.json();
            return true;
        } else {
            return false;
        }
    } catch (error) {
        return false;
    }
}

我的问题是如何区分业务逻辑中的错误响应和异常并发送到视图?目前,对于错误和异常,我确实返回false,但是我需要进行详细的错误处理

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法解决问题:

返回对象 {         成功:对,         例外:假       } ,而不是业务逻辑中的布尔值 true / false 。根据Object的值,您可以在屏幕上做出决定。

使用上述方法更新的代码。

业务逻辑

import { APICall} from './ApiClient'; 

export const businessLogic= async () => {
    try {
        let response = await APICall();
        if (response.status === 200) {
            const body = await response.json();
            return {
              success: true,
              exception: false
            }
        } else {
            return {
              success: false,
              exception: false
            }
        }
    } catch (error) {
      return {
        success: false,
        exception: true
      }
    }
}

在视图中使用此业务逻辑

import {businessLogic} from './BusinessLogic';

onButtonPressed = async() => {
   let response = await businessLogic();

   if (response.success) {
      // handle SUCCESS case
   }else if(response.exception){
      // handle EXCEPTION case here
   }else{
     // handle API ERROR case here
   }
}