如何在角度7中将订阅结果从一种方法返回到另一种方法?

问题描述 投票:1回答:1

我有一个上传文件的方法

 uploadFiles(event, type) {
            var files = event.srcElement.files;
            for (let i = 0; i < files.length; i++) {
                formData.append("uploads[]", files[i], files[i]['name']);
            }

            formData.append('formFlags', type);
            return await this.uploadService.upload(formData).subscribe(response => {
               //return response
            });

上面的上传函数是从另一个函数调用的

uploadMarketingAgreement(event) {
    this.uploadFiles(event, "profilepic");
   //how to get result of the above method in a varaible
}

如何将第一个(异步)函数的结果返回给第二个函数?

angular async-await es6-promise
1个回答
0
投票

我有一个模拟服务,它返回一个简单的函数... working demo here ...你可以在服务返回一个调用后立即使用该值

constructor(private uService: UploadService) {
    this.uploadMarketingAgreement('');
  }

  uploadFiles(event, type) {
    return new Promise((resolve, reject) => {

      this.uService.upload(this.formData).subscribe(
        response => { console.log("data from service:" + response); resolve(response); }
        , errr => { console.log("error from service:" + errr); reject(errr); }
      );
    });
  }

  async uploadMarketingAgreement(event) {
    const uploadFilesVal = await this.uploadFiles(event, "profilepic");
    console.log('from await:' + uploadFilesVal);
    //how to get result of the above method in a varaible
  }
© www.soinside.com 2019 - 2024. All rights reserved.