我正在做一个角形拼合,并且具有异步功能(来自我正在使用的库中)。现在,我想告诉我的程序完成该库的功能,并且仅在该功能完成时才继续执行程序的其余部分。有没有办法确定打字稿中函数的优先级?
// Take next tourStep
this.tourService.next();
if (stepId === 4) {
const backdrop = document.querySelector('.ngx-tour_backdrop') as HTMLElement;
}
上面的代码显示了我的问题this.tourService.next();动态创建一个HTMLElement,之后我想选择对其执行某些操作。但是,在选择器尝试找到HTML元素时,尚未完成被调用的函数。有没有办法绕过这个问题?
答案 0 :(得分:0)
通常异步函数具有回调函数,您可以在其中放置需要在异步函数完成之后执行的代码。next()
函数没有吗?
答案 1 :(得分:0)
答案取决于上下文。首先,检查tourService.next()是否接受可选的回调参数或返回promise本身。现在,有三种可能的情况。 A),存在一个回调参数。 B)它返回一个承诺。 C)都不是。
如果是A,请提供回调并将代码放在其中。
如果是B,则将回调添加到Promise。
对于C语言,您可以进行破解,并连续检查(有间隔)是否完成。由于效率低下,这是次优的选择,而且...是个hack。只能是不得已。