В ожидании наблюдаемого, чтобы закончить - угловой - PullRequest
0 голосов
/ 21 октября 2018

Я использую хранилище Angular и Firebase для загрузки изображений, и у меня возникает проблема, когда мои urlImg это undefined, когда я пытаюсь распечатать их в console.log внутри tap.

 this.snapshot = this.snapshot = this.task.snapshotChanges().pipe(
      finalize(() => {
        this.storage
          .ref(path)
          .getDownloadURL()
          .subscribe(url => {
            this.urlImg = url; // with this you can use it in the html
          });
      }),
      tap(snap => {
        if (snap.bytesTransferred === snap.totalBytes) {
          // Update firestore on completion
          //Code to upload on completion
          console.log("url");
          console.log(this.urlImg);
        }
      })
    );

1 Ответ

0 голосов
/ 21 октября 2018

Один из вариантов - воспользоваться заполненным разделом подписки.Тогда вы можете быть уверены, что this.urlImg имеет значение.

.subscribe(
   url => this.urlImg = url,
   err => console.error('Request for URL failed: ' + err),
   () => {
      // operations when URL request is completed
   }
)
...