Я использую Ax ios .post для создания новой записи. С этой новой записью есть уникальный ключ, назначенный этой записи из Firebase, который мне понадобится в моей следующей операции PUT.
В настоящее время я использую вложенный .then, и, похоже, он работает так, как должен. Я просто не уверен, как я могу преобразовать это в Promise.all, не зная уникальный ключ, который нужно передать во второй запрос. Кажется, он подвержен проблемам, как я его структурирую. Есть ли способ использовать Promise.all для обеспечения выполнения обоих запросов? Или, может быть, все в порядке?
Полнофункциональная песочница находится здесь: https://codesandbox.io/s/react-sample-5nc1z?file= / index. js
И вот та часть, о которой идет речь:
postColumn = (columnArr) => {
axios
.post(
"/workflow/boards/" + this.state.boardID + "/columns.json",
columnArr
)
.then((response) => {
// console.log(response);
const newColumnIds = [...this.state.columnIds, response.data.name];
const newColState = {
columns: {
...this.state.columns,
[response.data.name]: { columnvalue: columnArr.columnvalue },
},
};
this.setState(newColState);
axios
.put(
"/workflow/boards/" + this.state.boardID + "/columnIds.json",
newColumnIds
)
.then((response) => {
const newColIdState = {
columnIds: newColumnIds,
};
this.setState(newColIdState);
})
.catch((error) => {
console.log("Error in putColumnIds", error);
});
})
.catch((error) => {
console.log("Error in postColumn", error);
});
};