setCancelToken method
设置取消令牌
支持两种方式:
- 使用 RxNet 的 CancelToken(推荐)
- 使用 Dio 的 CancelToken(向后兼容)
Implementation
BuildRequest<T> setCancelToken(dynamic cancelToken) {
if (cancelToken is rxnet_cancel.CancelToken) {
// RxNet CancelToken
_cancelToken = cancelToken;
} else if (cancelToken is dio.CancelToken) {
// Dio CancelToken - 创建一个包装器
final rxnetToken = rxnet_cancel.CancelToken();
// 当 Dio token 被取消时,也取消 RxNet token
cancelToken.whenCancel.then((_) {
rxnetToken.cancel('Cancelled via Dio CancelToken');
});
_cancelToken = rxnetToken;
} else {
throw ArgumentError('cancelToken must be either CancelToken or dio.CancelToken');
}
return this;
}