如何在节点中向函数调用添加异步回调?

时间:2015-06-10 17:09:55

标签: node.js

问题太广泛/不清楚。任何对此答案感兴趣的人都可以访问:Creating Callbacks for required modules in node.js

基本上我在我的节点应用程序中包含了一个CLI包。我需要CLI来启动一个新项目(这需要为项目创建一个文件夹)。创建项目文件夹后,我需要在文件夹中创建一些文件(使用fs writeFile)。问题是现在,我的writeFile函数在CLI包创建文件夹之前执行(这是我的console.log检测到的。这让我想到了主要的主要问题。

我可以在不修改我包含的软件包的情况下向CLI.new添加异步回调函数吗?

  FoundationCLI.new(null, {
    framework: 'sites', // 'apps' or 'emails' also
    template: 'basic', // 'advanced' also
    name: projectName,
    directory: $scope.settings.path.join("")
  });

  try{
    if (!fs.existsSync(path)){
      console.log("DIRECTORY NOT THERE!!!!!");
    }
    fs.writeFileSync(correctedPath, JSON.stringify(project) , 'utf-8');
  } catch(err) {
    throw err;
  }

它使用foundation-cli。新命令执行以下异步系列。我喜欢在软件包中添加一个回调 - 仍然不太确定如何。

async.series(任务,完成);

任何对此感兴趣的人都可能获得里程:

Creating Callbacks for required modules in node.js

1 个答案:

答案 0 :(得分:0)

new命令的代码似乎可以在https://github.com/zurb/foundation-cli/blob/master/lib/commands/new.js

上找到

这段代码的编写不允许以编程方式使用new命令(它在任何地方使用console.log),并且在工作完成时不会调用任何回调。

所以没有办法使用这个包来做你想要的。要么修补包裹,要么找另一种方法去做你想要达到的目的。