encodeAsync static method
Same as encode, but encodes in the compressionIsolatePool (a
background Isolate) if bytes is large for quality
(see isolateMinLength).
Implementation
static FutureOr<Uint8List?> encodeAsync(
Uint8List bytes, {
int quality = defaultQuality,
}) {
quality = quality.clamp(0, 11);
if (bytes.length < isolateMinLength(quality)) {
return encode(bytes, quality: quality);
}
final encoder = APIBrotli.encoder;
return compressionIsolatePool
.run(() => encoder(bytes, quality))
.then<Uint8List?>(
(encoded) => encoded,
onError: (Object e, StackTrace s) {
_logEncodeError(bytes.length, quality, e, s);
return null;
},
);
}