从父节点返回async函数的值

时间:2016-11-17 13:11:32

标签: javascript node.js asynchronous

我正在为Atom文本编辑器构建提供程序,该编辑器是基于build包的组件。此程序包允许您运行一些测试以检查提供程序是否有资格运行,分别返回.as-console-wrapper { top: 0; height: 100% !important; }true

我正在使用glob来检查项目文件夹中是否存在某种文件类型,以确定是否激活构建提供程序。例如,项目文件夹应包含LESS文件,以便激活false的构建提供程序。

示例:

lessc

我想知道是否可以异步使用isEligible() { const paths = glob.sync("**/*.less"); if (paths.length > 0) { // one or more LESS files found return true; } // no LESS files found return false; } ,特别是如何从glob返回状态。以下工作:

isEligible()

2 个答案:

答案 0 :(得分:0)

由于函数异步执行,return语句将无效,而您需要做的就是使用回调即:

isEligible(callback) {
    glob("**/*.less", function (err, files) {
      if (err) {
        return false;
      }

      callback(true);
    })
}

<强>用法

//call isEligible

isEligible(function(result){
   //do something with result
});

答案 1 :(得分:0)

  

以下不起作用

是。它absolutely cannot work

如果isEligible的调用者(即build包)不支持异步,那么你必须使你的函数同步,没有办法解决它。您可以提交功能请求,以提供对isEligible的回调或接受承诺作为返回值。