How to use element.scrollIntoView as a promise or observable?

I’m using

tab_element.scrollIntoView({
        behavior:'smooth',
        block: 'center',
});

to scroll the element at the center
but immediately after this, I need to call router.navigate
This is causing the scroll to be interrupted,
so my solution is to do the navigation after the scrolling is finished.
Is there a way that I can get a promise or an observable which can be used to call a function after scroll completes?