如何使用Aync在nodejs中顺序处理相同类实例的方法

问题描述 投票:0回答:1

我拥有带有某些功能的类。

需要按顺序处理功能。我使用async进行了尝试,但是当函数通过我传递的类对象执行时,因为这是未定义的。

ASYNC系列代码:

const obj = new Class();

const steps = [
obj.test,
async.apply(obj.fun1, ""),
obj.fun2,
async.apply(obj.fun3, ""),
async.apply(obj.fun4, ""),
async.apply(obj.fun6, "",""),\
];

async.series(steps,
(err, result) => {
  if (!result) {
     return;
  }
});

执行此操作时,从fun1那里出错

“无法读取未定义的属性'post'”

其原因是,在async.series之前启动的类在执行时未正确传递给内部函数。

有人可以帮助我解决此问题,例如如何在async.series中传递一系列类函数

node.js typescript async.js
1个回答
1
投票

如果异步返回的方法(而不是使用回调),则可以使用await对其进行排序。

async function someFunction() 

    const steps = [
        obj.test.bind(obj),
        obj.fun1.bind(obj, ""),
        obj.fun2.bind(obj),
        obj.fun3.bind(obj, ""),
        obj.fun4.bind(obj, ""),
        obj.fun6.bind(obj,"",""),
    ];

    for (let fn of steps) {
        await fn();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.