Откат достигнут конечной точки, когда интернет-соединение отсутствует - PullRequest
0 голосов
/ 07 января 2019

В моем приложении на моем компьютере есть экран регистрации, где пользователь регистрируется сам. Таким образом, в процессе регистрации 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 (), и четыре конечные точки снова сохраняются локально, что вызывает повторный вызов первой конечной точки и т. Д. Для оставшихся конечных точек, даже если они завершены

После первой попытки регистрации, ее перепутали ... Есть ли конкретный или стандартный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...