我在JS中有一些函数,应该按顺序执行。其中一个可以返回值(同步),其他可以不返回值,或者可以返回可观察到的结果(异步)。
那么,如何确保执行任何函数并将委托执行进一步传递给下一个函数?
当然,我可以对每个函数使用回调,也可以互相包装成Promise。
例如:
function one() {
return 1;
}
function two(r1) {
return 2;
}
function three(r2): void {
}
function fourObs(r3): Observable<any> {
return new Observable();
}
因此,我需要以下调用堆栈:
r1 = one();
if (r1) {
r2 = two(r1);
if (r2) {
r3 = three(r2);
if (r3) {
fourObs(r3).subscribe({(data) => console.log(data); });
}
}
}
答案 0 :(得分:1)
您可以创建一个函数来像这样递归地调用给定函数:
MATCH (p:Paper) - [w:WRITTEN_BY] -> (a:Author)
MATCH (p:Paper) - [c:CITED_BY] -> (p)
WITH count(c) as Citations
RETURN a.authorName, p.paperTitle, Citations