如何使用AngularJS承诺

时间:2015-06-23 14:58:29

标签: angularjs

如何在此服务中成功下载后使用promises来触发加载方法?

   .service('pdfService', function(){
   var lastUrl;
   var lastFileName
   return {
      createPdf(url, fileName){
          //do processing
          lastUrl = url;
          lastFileName = fileName
      },
      loadLastPdf(){
         //use lastUrl and lastFileName
      }
   }
}

并在控制器中:

.controller('SomeCtrl', function(pdfService) {
    pdfService.createPdf('http://example.com', 'file.pdf');
    // or pdfService.loadLastPdf();
}

我在downloadPdf方法中尝试但没有收到回复。

filetransfer.download(
...
).then(function(){ 
   this.load(lastFileName)
});

我正在使用Cordova文件传输。

1 个答案:

答案 0 :(得分:0)

这段代码对我有很大帮助:

controller('MyCtrl', function($scope, $q) {

  function longOperation() {
    var q = $q.defer();

    somethingLong(function() {
      q.resolve();
    });    

    return q.promise;
  }

  Then you can call it:

  longOperation().then(function() {

});

})