Delay for NavController

I am trying to add some animation. When user clicks on a link, I need some delay to play animation and then go to page. I have tried this code:

viewNewsItem(item) {
    setTimeout(() => {
        this.navCtrl.push(SinglePage, {
            item
        });
    }, 300);
}

But this makes controller wait for 300ms and open single item page open twice. Are there any ideas?

I’ve looked into documentation and found some info about NavOptions, but there are no porperties such a delay