要件は、Q.allが正常に終了した場合に結果を返す必要があるjavascript関数内でQ.allと呼ばれるQ.js機能を使用することです。
私の目的は、wrongsizeとokaysizeという2つのプロパティを持つオブジェクトを返すことです。どちらのプロパティもjavascript配列です。
問題は、Q.allにQ.defer関数を同じ関数に含める方法がわからないことです。
function filterNonConformingPageSize(files) {
var addToWhichGlobalVariable = "pageSizesOfNewFiles";
promises = [];
for (var i=0; i<files.length; i++) {
promises.push(
getSizeSettingsFromPage(files[i], addToWhichGlobalVariable, calculateRatio)
);
}
// *** sort out the files after all promises have been resolved
var resultObj = Q.all(promises).then(function() {
var test = new Object();
var filesWithOkaySize = new Array();
var filesWithWrongSize = new Array();
for (var i=0; i<files.length; i++) {
if (pageSizesOfNewFiles[i].size == majorityPageSize) {
filesWithOkaySize.push(files[i]);
} else {
filesWithWrongSize.push(files[i].name);
}
}
test['wrongsize'] = filesWithWrongSize;
test['okaysize'] = filesWithOkaySize;
return test;
});
return resultObj;
}