Как вызвать два действия в одном методе? - PullRequest
1 голос
/ 07 октября 2019

У меня есть 2 действия:

Это первое

Я добавляю сюда человека:

export const InsertOrUpdate = (person) => {

    return (dispatch) => {
        var instance = Axios.create({
            baseURL: 'url',
            // timeout: 1000,
            headers: {
                "Content-Type": "application/json"
            }
        });
        instance.get("/InsertWorker", {
            params: {
                Name: person.Name,
                Surname: person.Surname,
                Duty: person.Duty,
                DateOfDay: person.Date.substring(0, person.Date.length - 9),
                Shift: person.Shift,
                WorkDayCount: person.WorkDayCount,
                Equipment: person.Equipment,
                Sicil: person.Sicil,
                Ship: person.Ship
            }
        });


    }
}

Это второй

Я звоню рабочим здесь:

export const getSignedWorkers = (collection) => {
    return (dispatch) => {
        var instance = Axios.create({
            baseURL: 'url',
            // timeout: 1000,
            headers: {
                "Content-Type": "application/json"
            }
        });

        instance.get('/GetWorkers', {
            params: {
                DateOfDay: collection.Tarih,
                Shift: collection.Vardiya
            }
        })
            .then((response) => response.data)
            .then(x => {
                const Signed = str3.filter(x => x.Ship != "" && x.Shift != "H");
                console.warn('signed', Signed);

                const UnSigned = str3.filter(x => x.Ship == "" || null);
                const RemoveOnHolidays = UnSigned.filter(x => x.Shift != "H");

                const OnHoliday = str3.filter(x => x.Shift == "H");

                const AllWorkers = {};
                AllWorkers.signed = Signed;
                AllWorkers.Unsigned = RemoveOnHolidays;
                AllWorkers.OnHoliday = OnHoliday;

                dispatch({ type: FETCH_SIGNED_WORKERS_SIGNED, payload: AllWorkers });

            })
            .catch((error) => {
                console.warn('error', error);
            })

    }
}

Я называю эти действия здесь:

_Insert = (person) => {
        person.Ship = this.props.gemi_Sefer_No;

        this.props.InsertOrUpdate(item);    <------- Here I call first action

        var date = new Date().getDate(); //Current Date
        var month = new Date().getMonth() + 1; //Current Month
        var year = new Date().getFullYear(); //Current Year
        var tarih = year + "/" + month + "/" + date;

        let collection = {};
        collection.Tarih = tarih;
        collection.Vardiya = this.props.vardiya == 0 ? "S" : this.props.vardiya == 1 ? "A" : this.props.vardiya == 2 ? "G" : null


        this.props.getSignedWorkers(collection);   <--- Here I call second action

    }

Я пытаюсь вставить работников в базу данных, затем вызвать всех работников из базы данных и использовать другой компонент с избыточностью. Однако иногда это работает правильно, иногда нет.

Я имею в виду, когда я вставляю в базу данных и перезваниваю снова, вставка работника работает правильно, однако при вызове всех работников приходит без работника, который я вставляю последним,Как я уже сказал, иногда это работает правильно. Что я должен делать ?. Разве неправильно вызывать два действия в одном методе? если это так, что мне делать?

...