Как вернуть данные Promise тогда в угловых 2 - PullRequest
0 голосов
/ 19 сентября 2018

Я использую стек файлов для загрузки файлов.Я просто хочу создать сервис для загрузки, чтобы я мог использовать его в любых компонентах.Но у меня проблема с моим кодом.

Это функция в сервисном файле

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);
});

Я получаю ответ в сервисной функции, но не в компоненте,Где проблема и предложите способ выполнить повторное использование функции в компонентах

1 Ответ

0 голосов
/ 19 сентября 2018

Функция fsClient.pick (), похоже, возвращает обещание, поэтому вместо того, чтобы обернуть вызов fsClient.pick (fileOptions) в другое обещание, вы можете просто вернуть этот вызов из функции uploadFiles.Так что просто верните fsClient.pick (fileOptions).Код в компоненте остается неизменным.

...