【问题标题】:Difficulty returning the result of an inner function in Angular / Typescript难以在 Angular / Typescript 中返回内部函数的结果
【发布时间】:2022-08-23 23:23:18
【问题描述】:

我对 Angular 和 Typescript 真的很陌生。

我现在有这个功能

createTranscriptionJob(fileToUpload: File, language: string): Observable<void> {

    this.getSasUrl(fileToUpload.name, language, ldapUserName)
        .subscribe(response => {
            const test = this.upload(response.sasUrl, fileToUpload);
            console.log(test);
        });

    return of();
}

当前的第一个问题是createTranscriptionJob 函数基本上没有返回任何内容。

第二个问题是createTranscriptionJob 函数正在返回内部upload函数调用完成。

问题

我需要createTranscriptionJob 函数来返回upload 函数的结果。如何做到这一点?

    标签: javascript angular typescript promise observable


    【解决方案1】:

    您可以像这样返回呼叫:

    createTranscriptionJob(fileToUpload: File, language: string): Observable < void > {
      return this.getSasUrl(fileToUpload.name, language, ldapUserName)
        .subscribe(response => this.upload(response.sasUrl, fileToUpload));
    }
    

    【讨论】:

      【解决方案2】:
      createTranscriptionJob(fileToUpload: File, language: string): Observable<void> {
          return this.getSasUrl(fileToUpload.name, language, ldapUserName)
             .pipe(
                 switchMap(() =>  this.upload(response.sasUrl, fileToUpload)
              )
             
      

      ); }

      【讨论】:

        猜你喜欢
        • 2017-03-18
        • 1970-01-01
        • 2021-09-06
        • 2022-11-11
        • 2020-12-28
        • 1970-01-01
        • 2017-12-29
        • 1970-01-01
        • 2014-12-01
        相关资源
        最近更新 更多