Как получить значение из отправки?

#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 возвращает a Promise , вы можете 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);
});