API确认成功,而不是使用响应状态



所以我对行业标准的实现感到困惑。我觉得我现在这样做太不礼貌了

我希望在出现实际错误时显示错误消息,并在服务器返回非成功状态时显示失败消息

这里的问题是,当assignUser()发生实际错误时,它返回错误,这不会触发第一个函数的catch,因此它由else语句处理,并在实际错误时显示失败消息。我试图在assignUser()的catch中使用throw new Error(" Error),但出现了同样的问题。

我的第二个问题是关于(200 >= status <300),除了检查状态(可以是200,204…)之外,是否有更简单的方法来检查操作是否成功?

  try {
        let status = assignUser(user);
        if (status >= 200 && status < 300) {
          notify.show("message success");
        } else {
          notify.show("message failure");
        }
      } catch (e) {
        notify.show("message error");
      }

 export async function assignUser(user) {
  try {......
    return resp.status;
  } catch (e) {
    return e;
  }
}

我假设assignUser函数正在使用fetch进行api调用。因此,如果你不使用then catch方法来解析promise,那么assignUser函数必须是一个async函数。

async function assignUser(user) {
  try {
    const jsonRes = await fetch(url);
    if(!jsonRes.ok) {
       notify.show("message failure");
    } else {
       notify.show("message success");
       const result = await jsonRes.json();
       return result;
    }
  } catch (e) {
    notify.show("message error");
  }
}

这里不需要另一个函数来检查状态等等而不是用状态码检查,你可以使用响应。好财产。

希望这对你有帮助由于

相关内容

  • 没有找到相关文章

最新更新