promise 如何知道所有的回調都執行完了?


var fs = require('fs');
/**
 * @return {object} Promise
 */
function doThing(fileName) {
   // ...
   // console.log(fileName);
   // do something and return a promise
}

/**
 * @return {object} Promise
 */
function walk(fileName, cb) {
  var pList = [];
  var states = fs.statSync(fileName);
  if (states.isDirectory()) {
    var files = fs.readdirSync(fileName);
    files.forEach(function(file) {
      pList.push(walk(fileName + '/' + file, cb));
    });
  } else if (states.isFile()) {
    pList.push(cb(fileName));
  }
  return Promise.all(pList);
}

walk('filename', doThing).then(function() {
  console.log('done');
}).catch(function(err) {
  console.log(err);
});

原地址:http://cnodejs.org/topic/568dc05ac2289f51658f0856


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM