我在angularJS应用中使用pdfmake(在javascript中创建pdf的库)。 pdfmake使用异步函数来创建pdf blob。
所以我要做的是创建一个可以返回pdf blob数组的函数。我尝试了以下方法:
createMultiplePDF: function(objects) {
var p = $q.when();
var retObjects = [];
angular.forEach(objects, function(pdfObject, index) {
p = p.then(function (formerRes) {
return pdfMake.createPdf(objects[index].pdf).getBuffer(function(slipPdfObject){
retObjects.push(angular.copy(slipPdfObject));
});
});
});
return p.then(function(){
return retObjects;
});
}
但我得到一个空阵......我做错了什么?
答案 0 :(得分:2)
这将是我的方法:
createMultiplePDF: function(objects) {
var retObjects = [];
angular.forEach(objects, function(pdfObject, index) {
var deferred = $q.defer();
pdfMake.createPdf(objects[index].pdf).getBuffer(function(slipPdfObject){
deferred.resolve(angular.copy(slipPdfObject));
});
retObjects.push(deferred.promise);
});
var pdfList = $q.all(retObjects);
return pdfList;
}