sweetalert回车触发一闪而逝如何解决?

有一个回车触发事件,触发后进行sweetalert的弹出,但是效果是弹出框一闪而逝。附上我的代码。

$scope.checkInput = function (event) {
                var keycode = window.event ? event.keyCode : event.which;
                if (keycode == 13) {
                    swal({
                        title: '确认此车无问题,可直接放行?',
                        text: '',
                        type: "warning",
                        showCancelButton: true,
                        confirmButtonColor: "#e4393c",
                        confirmButtonText: $translate.instant('main.alertConfirm.confirmButtonText'),
                        cancelButtonText: $translate.instant('main.alertConfirm.cancelButtonText'),
                        closeOnConfirm: true
                    }, function (isConfirm) {
                        if (isConfirm) {
                            toastr.success('提交成功');
                        } else {
                            toastr.success('提交失败');
                        }
                    });
                }
            }

我希望达到的效果就是正常的sweetalert的弹出效果

问题解决了,加个定时器就好了。我猜测可能和异步执行有关,但是具体什么原理还是希望各位大神告知。附上代码

var timer = setInterval(
                        function () {
                            swal({
                                title: '确认此车无问题,可直接放行?',
                                text: '',
                                type: "warning",
                                showCancelButton: true,
                                confirmButtonColor: "#e4393c",
                                confirmButtonText: $translate.instant('main.alertConfirm.confirmButtonText'),
                                cancelButtonText: $translate.instant('main.alertConfirm.cancelButtonText'),
                                closeOnConfirm: true
                            }, function (isConfirm) {
                                if (isConfirm) {
                                    toastr.success('提交成功');
                                    clearInterval(timer);
                                } else {
                                    toastr.success('提交失败');
                                    clearInterval(timer);
                                }
                            });
                        }, 0)