Dart 中的异步 .sort()
Async .sort() in dart
我正在使用 dart/flutter,我需要对大值(10,000、20,000 90,000 100,000 项)进行排序,并且由于正在处理非常大的数据量,应用程序崩溃了几秒钟.我的疑问是:有没有办法将 sort() 函数用作异步,以便在数据排序时显示 loadingProgressIndicator()?
像这样:
listFilt.sort((a,b)=> a.compareTo(b))
我想转换成类似的东西:
showCircularIndicator = true;
await listFilt.sort((a,b)=> a.compareTo(b));
showCircularIndicator = false;
我知道 sort() 是同步函数,但有什么方法可以转化为异步函数?
使用compute,这里是根据标题对照片进行排序的例子。
List<Photo> sortPhotos(List<Photo> photos) {
photos.sort((a,b) => a.title.compareTo(b.title));
return photos;
}
...
final List<Photo> photos = await ...
final result = await compute(sortPhotos, photos);
我正在使用 dart/flutter,我需要对大值(10,000、20,000 90,000 100,000 项)进行排序,并且由于正在处理非常大的数据量,应用程序崩溃了几秒钟.我的疑问是:有没有办法将 sort() 函数用作异步,以便在数据排序时显示 loadingProgressIndicator()?
像这样:
listFilt.sort((a,b)=> a.compareTo(b))
我想转换成类似的东西:
showCircularIndicator = true;
await listFilt.sort((a,b)=> a.compareTo(b));
showCircularIndicator = false;
我知道 sort() 是同步函数,但有什么方法可以转化为异步函数?
使用compute,这里是根据标题对照片进行排序的例子。
List<Photo> sortPhotos(List<Photo> photos) {
photos.sort((a,b) => a.title.compareTo(b.title));
return photos;
}
...
final List<Photo> photos = await ...
final result = await compute(sortPhotos, photos);