路由器内部服务器错误

时间:2021-02-18 16:18:50

标签: javascript typescript vue.js toast

在我的路由器中,在我进入页面之前,我启动了一个 rest api 请求,通过 beforeEnter 子句从服务器获取数据,如下所示:

beforeEnter: (to, form, next) => {
              getData().then(
                (response) => {
                  //some logic to get data
                  next(); //if no error redirect to page
                },
                (error) => {
                  next(false); //on error not redirect on page - on this moment i want to show info about internal server error
                });
            }

现在我有一个问题,当我的 beforeEnter 出现错误时,如何显示带有“内部服务器错误”信息的 Toast/通知?

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

嗯,好的,我做

出错:

(error) => {
              HelpersService.internalServerErrorToast();
              next(false);
            }

服务中:

  internalServerErrorToast() {
    let bootStrapToaster = new BToast();

    bootStrapToaster.$bvToast.toast("500", {
      title: "Internal Server Error",
      toaster: "b-toaster-bottom-right",
      solid: true,
      variant: "danger",
      appendToast: false,
      noCloseButton: true,
      toastClass: "internalErrorToast",
    });
  }

答案 1 :(得分:0)

为什么不使用 catch。如果您使用的是 then,则可以使用 catch

beforeEnter: function(to, form, next) {
    this.getData().then((response) => {
        next();
    }).catch(error => {
         throw error
    })

}

试试这个。如果不行,请评论,我们会做其他事情。