Uncaught (в обещании) TypeError: updatePropertyInfo (...). Тогда не является функцией - PullRequest
0 голосов
/ 30 августа 2018

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

Эти действия работают и запускаются, когда они запускаются вне testAction.

export function testAction(dispatch) {
    return new Promise((resolve, reject) => {
        interstitialHandler(updatePropertyInfo()
            .then(fetchCoverages(dispatch, resolve))
            .catch((dispatch, reject)), {highBrand: false});
    });
};

Это обещание запускает два сервисных вызова, PUT, а затем ему нужно запустить GET.

ПОЛОЖЕНИЕ:

export function updatePropertyInfo() {
    return (dispatch, getState) => {
        const {form} = getState();
        const body = form.formName.values;
        dispatch(putPropertyInfo(getTransactionId(), body));
    };
}

export function putPropertyInfo(transactionID, body = '') {
    let data = {...body};

    const serviceUrl = CANNOT SHARE THIS DATA, 
    BUT THE CALL WORKS OUTSIDE THE PROMISE;

    return {
        types: [
             PUT_PROPERTY_INFO__UPDATE_DATA, 
             PUT_PROPERTY_INFO__UPDATE_SUCCESS, 
             SET_TRAP_ERROR_MESSAGE
        ],
        promise: {
            url: serviceUrl,
            method: 'put',
            withCredentials: true,
            headers: {
                'Content-Type': 'application/json'
            },
            data: data,
            timeout: 15000
        }
    };
}

ПОЛУЧЕНИЕ:

export function fetchCoverages() {
    return dispatch => {
        let transactionID = getTransactionId();

        if (transactionID) {
            dispatch(getCoverages(transactionID));
        } else {
            if (pushState()) {
                transactionID = getTransactionId();
                dispatch(getCoverages(transactionID));
            } else {
                dispatch({
                    type: SET_TRAP_ERROR_MESSAGE
                });
            }
        }
    };
}

export function getCoverages(transactionID) {
    let params = {};

    const serviceUrl = CANNOT SHARE THIS DATA, BUT THE 
    CALL WORKS OUTSIDE THE PROMISE;

    return {
        types: [
                GET_COVERAGES__FETCH_DATA,
                GET_COVERAGES__FETCH_SUCCESS, 
                SET_TRAP_ERROR_MESSAGE
        ],
        promise: {
            url: serviceUrl,
            params,
            method: 'get',
            withCredentials: true,
            timeout: 15000
        }
    };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...