互联网连接断开后,回滚击中了端点

时间:2019-01-07 07:01:34

标签: javascript react-native react-navigation asyncstorage

在我的本机应用程序中,我有一个registerScreen,用户可以在此注册自己。因此,在注册过程中有4个端点受到攻击。

我要做的就是,如果遇到第一个端点后互联网连接消失了,我们如何回滚它?

我正在尝试的是在本地存储中将四个字符串保存为componentDidMount()中的四个端点,例如:

    async componentDidMount() {
        await AsyncStorage.setItem("one", "endPointOne");
        await AsyncStorage.setItem("two", "endPointTwo");
        await AsyncStorage.setItem("three", "endPointThree");
        await AsyncStorage.setItem("four", "endPointFour");
    }

我通过以下方式检查条件

    let endPoint_one = await AsyncStorage.getItem("one");
    if(endPoint_one === "endPointOne") { hitEndPointOne }

随着端点获得成功,端点将从本地存储中删除,例如:

    try {
        axios.post(${SERVER_URL}${ENDPOINT_ONE})
            .then((response) => {
                if(response.status !== 200) {
                    dispatch({
                        type: REQ_1_FAIL
                    });
                    return 0;
                }
                AsyncStorage.remove("one");
            })
    } catch(err) { dispatch({type: ERR})}

问题从这里开始,因为第一个端点受到攻击并且互联网连接断开并且用户关闭了应用程序。

用户再次启动应用后,在注册页面上再次调用componentDidMount(),并且四个端点再次本地存储,这导致再次调用第一个端点,依此类推,即使其余端点都已完成

首次尝试注册后,它变得一团糟... 有没有特定或标准的方法?

0 个答案:

没有答案