继续使用此javascript代码中使用的设计模式有什么缺点

时间:2017-07-11 07:43:40

标签: javascript design-patterns

var fs = require('fs');
var fileName = 'README.txt';
fs.exists(fileName, function(exists) {
   if (!exists) {
      return console.error('File does not exist');
   }
   fs.stat(fileName, function(error, stats) {
   if (error) {
     return console.error(error);
   } else if (!stats.isFile()) {
     return console.error('Not a file');
   }
   fs.readFile(fileName, 'utf8', function(error, data) {
     if (error) {
       return console.error(error);
     }
     console.log(data);
   });
  });
});

我正在阅读的书指出" 回调地狱"作为这种设计模式的缺点。我刚刚开始使用Node.js,因此有点难以理解这个想法。

任何人都可以更好地解释它吗?

1 个答案:

答案 0 :(得分:0)

好吧,如果你有很多异步操作,这将很快导致巨大的,单片的,不可读的,不可测试的和不可维护的代码:

-Asset type: Local file (SVG, PSD)
-Path: the/path/to/your/image
-Size: check Override to keep your aspect ratio.
-Chek enable auto mirroring for RTL Layout.

为了防止这种情况,可以使用不同的方法。您需要将代码分解为单一函数,使用Promise或Async(NodeJS)等库。