Я работаю над проектом React, где пользователь может загружать и удалять фотографии в проектах. После загрузки нового изображения оно должно быть видно пользователю, только если выбран соответствующий проект. Решение довольно просто проверить

if (selectedProject.projectID=== imageMetadata.projectID) 

где

  • selectedProject.projectID: идентификатор текущего выбранного проекта (пришедшего из магазина Redux)
  • imageMetadata.projectID: идентификатор проекта, которому принадлежит загруженное изображение.

Все это делается внутри асинхронной функции, и проблема, с которой мы сталкиваемся, заключается в том, что даже после изменения selectedAlbum.albumID везде, эта функция все еще имеет свое старое значение. Это потому, что функция асинхронная?

Это мой код:

  let projectId = selectedProject.projectID; const responses = await Promise.all( filesToUpload.map( async (file) ={amp}gt; { let res = await imageStoreApiHandler.uploadPhoto(file, projectId); notifyUploadProgress(count  , total, notifcationKey); if (res.status === 200) { let imageMetadata: any = res.data[0]; if (selectedProject.projectID === imageMetadata.projectID) { addImage(imageMetadata); } } return res; }));