#javascript #reactjs #dispatch
#javascript #reactjs #отправка
Вопрос:
Как получить идентификатор табака из CreateTobaccoProfile
отправки?
const addToBarProfile = (data, dispatch) => new Promise((resolve, reject) => {
var somedata = dispatch(CreateTobaccoProfile({
data: JSON.stringify(data)
}));
//I need id of this request to send new request
debugger;
resolve();
});
addToBarProfile(data, dispatch).then(x => {
debugger;
AttachTobaccoToBar(data._id);
});
Комментарии:
1. Если
CreateTobaccoProfile
возвращает aPromise
, вы можетеawait
для него. Но я считаю, что этого будет лучше избежать и сделать его декларативным, что означает, чтоCreateTobaccoProfile
долженdispatch
быть «обратный вызов» сам по себе. Я использую"
, потому что он будет отправлять не сам обратный вызов, а действие, и редуктор «bar» (?) обработает это действие и в результате «attachTobacco».
Ответ №1:
я думаю, что повторная отправка синхронизирована, поэтому вы можете сделать это так, но вы уверены, что CreateTobaccoProfile
CreateTobaccoProfile({
data: JSON.stringify(data),
})
Возвращает значение? действия не должны возвращать значения, они просто инициируют изменение состояния
const addToBarProfile = (data, dispatch) =>
new Promise((resolve, reject) => {
var somedata = dispatch(
CreateTobaccoProfile({
data: JSON.stringify(data),
})
);
//I need id of this request to send new request
debugger;
if (!somedata) return reject(new Error("no data found !"));
resolve(somedata);
});
addToBarProfile(data, dispatch).then((somedata) => {
debugger;
AttachTobaccoToBar(somedata._id);
});