Acceder a la variable que está dentro de una promesa

Hola!

Tengo un pequeño problema , y es que tengo un formulario, dónde relleno lo que sería una receta. En esta pongo un input file para una imagen, y si el formulario está correcto, sube la imagen al servidor primero, y luego añade la imagen en forma de url absoluta (desde el servidor)

Tengo un código cómo este:

Cómo se puede ver, primero hago una promesa con un put, con la imagen. Eso no me da ningún problema, el problema vendría que cuando accedo a “downloadURL”, cómo es una promesa, no me llega el valor hasta 2 o 3 segundos más tarde, pero el código de abajo sigue corriendo, y en lugar de poner el valor del string de la ruta del servidor subida, me transforma la foto en un base64, con lo cual , en el servidor se sube un chorro de 400000 líneas de código cómo imagen.

La pregunta sería, hay alguna forma de que ese IF, se ejecute DESPUÉS de que se termine la primera promesa??

Sería de mucha ayuda , ya que el valor de la imagen subida al servidor es correcta, pero cómo en el momento de subir la receta a firebase no tiene ese valor, me pone un super churro de código.

Alguna idea?

Os dejo un console.log de esto para que podáis entenderme mejor.

Cómo podeis ver, me pone dos strings diferentes dentro de la promesa y fuera… lo único que necesito es que se pueda acceder a ese valor una vez cargado.

Muchas graciass!!!

proba usando async await

async crearReceta () {
...
// espera a la promesa imgRef y dsp continua
let res = await imgRef.put(...)
if (...) {
  ...
}
}