有没有办法让Breeze JS在通信失败的情况下自动重试?理想情况下,我想添加一个基于响应的中央事件处理程序,例如401,我可以提示用户重新登录,然后重试请求,或者如果它的常规连接问题给用户提供重试或取消的选项?
我可以在每个请求位置添加代码来处理这一点,但这将是大量的工作,理想情况下,这需要在一个中心位置。
发布于 2015-03-08 12:15:12
您可以将重试逻辑放在中。
来自微风文档:
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的ajax prefilter在更低的层次上做到这一点。
https://stackoverflow.com/questions/28920506
复制相似问题