Я пытаюсь создать цепочку сервисных вызовов и обернуть ее блесной, пока она ожидает разрешения сервисов.
Я изо всех сил пытаюсь сделать действия обещанием. Я предполагаю, что это то, что нужно сделать, чтобы устранить эту ошибку. Как я могу исправить свои действия, чтобы 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
}
};
}