优先处理打字稿中的函数

时间:2018-10-10 13:04:31

标签: javascript angular typescript

我正在做一个角形拼合,并且具有异步功能(来自我正在使用的库中)。现在,我想告诉我的程序完成该库的功能,并且仅在该功能完成时才继续执行程序的其余部分。有没有办法确定打字稿中函数的优先级?

// Take next tourStep
        this.tourService.next();
        if (stepId === 4) {
            const backdrop = document.querySelector('.ngx-tour_backdrop') as HTMLElement;
        }

上面的代码显示了我的问题this.tourService.next();动态创建一个HTMLElement,之后我想选择对其执行某些操作。但是,在选择器尝试找到HTML元素时,尚未完成被调用的函数。有没有办法绕过这个问题?

2 个答案:

答案 0 :(得分:0)

通常异步函数具有回调函数,您可以在其中放置需要在异步函数完成之后执行的代码。next()函数没有吗?

答案 1 :(得分:0)

答案取决于上下文。首先,检查tourService.next()是否接受可选的回调参数或返回promise本身。现在,有三种可能的情况。 A),存在一个回调参数。 B)它返回一个承诺。 C)都不是。

如果是A,请提供回调并将代码放在其中。

如果是B,则将回调添加到Promise。

对于C语言,您可以进行破解,并连续检查(有间隔)是否完成。由于效率低下,这是次优的选择,而且...是个hack。只能是不得已。