Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 命名的异步函数导致;task.apply不是一个函数;_Javascript_Node.js_Async Await - Fatal编程技术网

Javascript 命名的异步函数导致;task.apply不是一个函数;

Javascript 命名的异步函数导致;task.apply不是一个函数;,javascript,node.js,async-await,Javascript,Node.js,Async Await,我正在尝试使用async/await函数编写一个异步瀑布 这项工作: async.瀑布([ 异步函数(){ 让测试=等待foo(); 回归试验; } ], 功能(错误、结果){ 控制台日志(err); 控制台日志(结果); }); 但是,当我在下面定义函数,然后在数组中按其名称调用它时,如下所示: async function myFunction() { let test = await foo(); return test; } async.waterfall([ myFun

我正在尝试使用async/await函数编写一个异步瀑布

这项工作:

async.瀑布([
异步函数(){
让测试=等待foo();
回归试验;
}
],
功能(错误、结果){
控制台日志(err);
控制台日志(结果);
});
但是,当我在下面定义函数,然后在数组中按其名称调用它时,如下所示:

async function myFunction() {
  let test = await foo();
  return test;
}

async.waterfall([
  myFunction() 
],
function(err, results) {
  console.log(err);
  console.log(results);
});
我收到以下错误:

未处理的PromisejectionWarning:TypeError:task.apply不是函数


我正在尝试让我命名的异步函数在瀑布中工作。

我认为
myFunction
应该作为引用传递,而不是直接调用,例如:

异步函数myFunction(){ 让测试=等待foo(); 回归试验; } 异步瀑布([ 我的功能 ], 功能(错误、结果){ 控制台日志(err); 控制台日志(结果); });
这有帮助吗?

我认为
myFunction
应该作为引用传递,而不是直接调用,例如:

异步函数myFunction(){ 让测试=等待foo(); 回归试验; } 异步瀑布([ 我的功能 ], 功能(错误、结果){ 控制台日志(err); 控制台日志(结果); });
这有帮助吗?

在第一个示例中,您正在传递异步库稍后可以调用的函数引用。在第二个示例中,您立即调用该函数并传递它返回的承诺。它们的执行方式完全不同。删除
myFunction
之后的parens,然后在第二个示例中也将传递函数引用。另外,异步库承诺是否知道?它会等待
myFunction()
返回的承诺吗?当您已经有承诺可用时,您不应该将async.js库与
async function
s和
wait
语法一起使用。你不需要那个图书馆。不要把承诺和回调风格混为一谈。@Bergi,注意到。我将研究如何重新构造代码。在第一个示例中,您将传递一个异步库稍后可以调用的函数引用。在第二个示例中,您立即调用该函数并传递它返回的承诺。它们的执行方式完全不同。删除
myFunction
之后的parens,然后在第二个示例中也将传递函数引用。另外,异步库承诺是否知道?它会等待
myFunction()
返回的承诺吗?当您已经有承诺可用时,您不应该将async.js库与
async function
s和
wait
语法一起使用。你不需要那个图书馆。不要把承诺和回调风格混为一谈。@Bergi,注意到。我将研究如何重组我的代码。