如何以角度2返回Promise的数据

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

我正在使用filestack上传文件。我只是想创建一个上传服务,以便我可以在任何组件中重用。但我的代码有问题。

这是服务文件中的一个功能

uploadFiles(file,size) {
    let fsClient = filestack.init(fsKey);
    let fileAccepted = file;
    let maxSize = size;
    let fileOptions = {
      fromSources:["local_file_system"],
      accept: fileAccepted,
      maxFiles:1,
      minFiles:1,
      transformations:{
        crop:true,
        circle:false
      },
      maxSize:maxSize
    };
    let fileRes = new Promise((resolve, reject) => {
      fsClient.pick(fileOptions).then((response) => {
        if(response) {
          console.log(response);
          resolve(response);
        } else {
          reject();
        }
      });
    });
    return fileRes;
  }

我的呼叫功能在组件中

this._fs.uploadFiles(fileAccepted,maxSize).then((response) => {
        console.log(response);
});

我在服务功能中获得响应,但在组件中没有。问题在哪里,并建议一种方法来完成在组件中重用该功能

angular angular2-services angular2-components filestack
1个回答
0
投票

函数fsClient.pick()似乎返回一个promise,因此不是将调用fsClient.pick(fileOptions)包装在另一个promise中,而是可以从uploadFiles函数返回此调用。所以只需返回fsClient.pick(fileOptions)。组件中的代码保持不变。

© www.soinside.com 2019 - 2024. All rights reserved.