Как я уверен, что обещание. Все будут выполнять запрос обещания один за другим?
Сценарий У меня есть 3 службы. frontend
, uploader
и api
frontend
является клиентом, uploader
обрабатывает действия, связанные с хранением Google, а api
обрабатывает обычные REST-вещи.
В моей базе данных есть что-то вроде :
{
id: 1,
directory: 'googlestorage/dir/randomstring.jpg',
user_id: 100
}
Теперь у меня в интерфейсе есть функция, которая запускает обновление каталога и удаляет старый, так что конечный результат должен быть.
{
id: 1,
directory: 'googlestorage/new_directory/anotherRandomString.jpg',
user_id: 100
}
В моем frontend
мне нужно убедиться, что вызов api
для обновления записи в базе данных должен сначала go, прежде чем удалить ее, вызвав fileuploader
.
но на моем fileuploader
я передаю directory
, чтобы проверить и подтвердить, разрешено ли пользователю удалять файл или нет.
Но если я сначала обновлю базу данных, то я не смогу проверить, находится ли запись еще на пользователе, потому что данные уже обновлены и не будут совпадать со старой.
Я также не хочу сначала удалять файл, потому что, если запрос на обновление базы данных не выполняется?
Я попытался сделать:
await Promise.all([requestUpdateToApi, requestToDeleteFileUploader]);
Но это то же самое, один будет обновлен первый или будет удален первым перед другим.
Я хочу сделать это, чтобы в случае сбоя одного запроса другой тоже не выполнялся - есть ли хорошее решение для этого, не затрагивая структуру базы данных?