如何使用异步顺序处理节点js中相同class实例的方法
How to sequentially process methods of same class instance in nodejs using Aync
我有 Class 一些功能。
需要顺序处理函数。我尝试使用 async 但是当函数正在执行 class 对象时,因为这是未定义的。
异步系列代码:
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 收到错误
"Cannot read property 'post' of undefined"
这是因为在 async.series 之前启动的 class 在执行时没有正确传递以在内部运行。
谁能帮我解决这个问题,比如如何在 async.series
中传递一系列 class 函数
如果异步方法 return promises(而不是使用回调),那么您可以只使用 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();
}
}
我有 Class 一些功能。
需要顺序处理函数。我尝试使用 async 但是当函数正在执行 class 对象时,因为这是未定义的。
异步系列代码:
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 收到错误
"Cannot read property 'post' of undefined"
这是因为在 async.series 之前启动的 class 在执行时没有正确传递以在内部运行。
谁能帮我解决这个问题,比如如何在 async.series
中传递一系列 class 函数如果异步方法 return promises(而不是使用回调),那么您可以只使用 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();
}
}