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

时间:2015-03-07 21:59:27

标签: javascript breeze

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

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

1 个答案:

答案 0 :(得分:1)

您可以将重试逻辑放在 request interceptor

来自breeze docs:

  

Stock Breeze AJAX适配器提供了一个扩展点,即requestInterceptor。在适配器调用实际的AJAX组件之前,此拦截器为开发人员提供了对每个请求的最后一次查看   拦截器接受一个参数requestInfo,然后返回   什么都没有。

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' s ajax prefilter在较低级别执行此操作。