为什么回复的承诺是空的?

我试图使用.all所有的承诺都已经解决了,但是当我回复一个承诺它只是空的。

我附加所有承诺pushPromise和后来当我尝试做Promise.all(pushPromise)那么它不会工作。

我试图console.log(pushPromise) ,它显示空的数组。 为什么?

谢谢

 var Client = require('ssh2-sftp-client'); var sftp = new Client(); var folderPromise = []; var toServer = function(dir){ return new Promise(function (resolve, reject){ filePermission(dir, function(){ getAllFiles(dir.replace(/\/$/, '')); console.log('Got all files'); resolve(); }); }).then(function(done){ arrayfolder.forEach(function(folder){ folder = folder.replace(dir, ''); //console.log(folder); folderPromise.push(sftp.mkdir(folder, true)); }); return Promise.all(folderPromise).then(function(){ console.log('Folder added'); return 'Done'; }); }).then(function() { return 'Done'; }) .catch((err) => { console.log(err); return 'Not Done'; }); } var pushPromise = []; connections.forEach(function(connection){ var dir = getConnectionDir(connection); pushPromise.push(toServer(dir)); }); console.log(pushPromise); // return [] Promise.all(pushPromise).then(function(){ console.log('All uploaded to server'); }); 

问题可能是connections返回一个空数组。 我在本地进行了testing,并且pushPromise正确地返回了promise的数组。