Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 创建异步的管道函数,以便可以等待函数_Javascript - Fatal编程技术网

Javascript 创建异步的管道函数,以便可以等待函数

Javascript 创建异步的管道函数,以便可以等待函数,javascript,Javascript,我创建了一个简单的管道函数,它接受一个对象作为参数。对象将返回到下一个函数 函数本身需要在of循环的中等待。我试图找到如何做到这一点的例子,并阅读了多篇文章,但都没有成功。当我在管道函数前面添加async时,我得到以下错误: TypeError: pipeline(...) is not a function 下面是我的代码的样子: async function pipeline(...funcs) {... // Throws the error function pipeline(...

我创建了一个简单的管道函数,它接受一个对象作为参数。对象将返回到下一个函数

函数本身需要在of循环的
中等待。我试图找到如何做到这一点的例子,并阅读了多篇文章,但都没有成功。当我在管道
函数前面添加
async
时,我得到以下错误:

TypeError: pipeline(...) is not a function
下面是我的代码的样子:

async function pipeline(...funcs) {... // Throws the error

function pipeline(...funcs) {
  return function(val) {
    let lastResult
    for (let func of funcs) {
      console.log(func)
      lastResult = func(lastResult || val)
    }
    return lastResult
  }
}

const pipe = pipeline(
  function1,
  function2,
  function3
)(object)

创建管道不能是异步的,而是执行管道:

function pipeline(...funcs) {
  return async function(val) {
    for (let func of funcs) {
      console.log(func);
      val = await func(val);
    }
    return val;
  } 
}

您在哪个
函数
关键字前面放置了
异步
?您是否尝试将管道转换为异步函数?我建议不要将
等待
放在
管道
中。明确承诺返回函数,并传递类似于
p=>p.then(function2)
的内容,而不是
function2
。我将其添加到管道函数前面。我据此编辑了我的帖子。@Bergi现在正在看你的建议。这完美地解决了它。非常感谢。将在8分钟内标记为正确。:)