我有一个我要兑现诺言的情况。承诺基本上是由ajax请求触发的。
拒绝诺言后,它会显示一个错误对话框,提示服务器错误。
我想做的是,当响应代码为401时,我既不想解析承诺也不会拒绝承诺(因为它已经显示了错误对话框)。我只想重定向到登录页面。
我的代码如下所示:
function makeRequest(ur, params) {
  return new Promise(function (resolve, reject) {
    fetch(url, params).then((response) => {
      let status = response.status;    
      if (status >= 200 && status < 300) {
        response.json().then((data) => {
          resolve(data);
        });
      } else {
        if (status === 401) {
          redirectToLoginPage();
        } else {
          response.json().then((error) => {
            if (!error.message) {
              error.message = constants.SERVER_ERROR;
            }
            reject({ status, error });
          });
        }
      }
    });
  });
}
如您所见,如果状态为401,则我将重定向到登录页面。诺言既没有解决也没有被拒绝。
这段代码可以吗,还是有更好的方法来做到这一点?