我如何以反应形式检索可观察值?

Posted

技术标签:

【中文标题】我如何以反应形式检索可观察值?【英文标题】:How i can retrieve value observable in reactiveform? 【发布时间】:2018-12-26 15:31:02 【问题描述】:

如何以反应形式检索我的 url 值?我不知道如何从 Observable 中提取值以由存在 Observable 的函数返回。我只需要从中返回一个值即可。

uploadFile(event) 
    const file = event.target.files[0];
    const filePath = Date.now().toString();
    const fileRef = this.storage.ref('/referentiels/' + filePath);
    const task = this.storage.upload('/referentiels/' + filePath, file);
    this.uploadPercent = task.percentageChanges();
     task.snapshotChanges().pipe(
        finalize(() => 
       this.downloadURL = fileRef.getDownloadURL();
       this.downloadURL.subscribe((url) => 
            return url
        );
        ))
    .subscribe()
      
  onSaveReferentiel() 
    const nomSS = this.referentielForm.get('nomSS').value;
    const speSS = this.referentielForm.get('speSS').value;
    const webSS = this.referentielForm.get('webSS').value;
    const newReferentiel = new Referentiel (nomSS, speSS, webSS, ---url---);
    this.referentielsService.createNewReferentiel(newReferentiel);
    this.router.navigate(['/referentiels']); 
  

【问题讨论】:

你想达到什么目标? 目前你遇到了什么错误? 您是否正在尝试控制订阅数据的任何值? 让我们continue this discussion in chat。 我重新提出了我的问题 【参考方案1】:

试试这个

uploadFile(event) 
    const file = event.target.files[0];
    const filePath = Date.now().toString();
    const fileRef = this.storage.ref('/referentiels/' + filePath);
    const task = this.storage.upload('/referentiels/' + filePath, file);
    this.uploadPercent = task.percentageChanges();
   task.snapshotChanges().pipe(
    finalize(() => 
   this.downloadURL = fileRef.getDownloadURL();
   this.downloadURL.subscribe(url => this.url = url
    );

    ))
.subscribe())

【讨论】:

先试试console.log(url)里面的subscribe方法 不客气,兄弟。很高兴能为您提供帮助!

以上是关于我如何以反应形式检索可观察值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用反应以多步形式进行验证

如何传播可观察序列,但前提是它以特定的值集合开始?

如何将可观察值传递给@Input() Angular 4

如何使用验证编辑嵌套的反应式表单?

如何将反应形式的值传递给突变(变量)?

如何在Angular2中使禁用的反应形式可编辑