如何确保执行函数以进一步委托进程?

时间:2019-02-27 15:13:10

标签: javascript

我在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); });
        }
    }
}

1 个答案:

答案 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