BreezeJS中央错误处理程序和自动重试

BreezeJS central error handler and auto retry

本文关键字:重试 程序 处理 错误 BreezeJS      更新时间:2023-09-26

有没有办法让Breeze JS在通信失败的情况下自动重试?理想情况下,我想添加一个基于响应的中央事件处理程序,例如 401,我可以提示用户重新登录,然后重试请求,或者如果其一般连接问题为用户提供重试或取消的选项?

我可以在每个请求位置添加代码来处理这个问题,但这将是很多工作,理想情况下,这需要位于一个中心位置。

您可以将重试逻辑放在请求拦截器中。

来自微风文档:

Stock Breeze AJAX 适配器提供了一个扩展点,即 requestInterceptor。此拦截器使开发人员在适配器调用实际的 AJAX 组件之前最后一次查看每个请求。
拦截器采用单个参数,请求信息,并返回 无。

var requestInfo = {
        adapter: this,      // this AJAX adapter
        config: ...,        // the configuration object passed to the wrapped AJAX component
        dsaConfig: config,  // the config arg from the calling Breeze DataServiceAdapter
        success: successFn, // adapter's success callback
        error: errorFn      // adapter's error callback
}

请求拦截器可以包装error回调并添加重试逻辑和 401 处理。

如果你在jQuery中使用breeze,你可以在较低的级别使用jQuery的ajax预过滤器来做到这一点。