请教 Dio 4.0.6版本 使用QueuedInterceptorsWrapper问题

450 阅读1分钟

Dio 4.0.6版本 使用QueuedInterceptorsWrapper问题
freshToken过期重新登录后 无法在继续监听到onError

dio.interceptors.add(QueuedInterceptorsWrapper(onRequest: (options, handler) {
  return handler.next(options);
}, onResponse: (response, handler) {
  return handler.next(response); 
}, onError: (error, handler) async {
  if (error.response?.statusCode == 401) {
    var newToken = await ApiBaseHelper.refreshToken(ref);
    var options = error.response!.requestOptions;
    options.headers["Authorization"] = 'Basic ${base64.encode(utf8.encode('$newToken:'))}';
  
    dio.fetch(options).then(
      (r) => handler.resolve(r),
      onError: (e) {
         handler.reject(e);
      },
    );
    return;
  } else {
    return handler.next(error);
  }
}));