Dart:处理无法访问FileSystem的浏览器

时间:2017-09-14 08:31:27

标签: dart

我的目标是尝试访问chrome上的浏览器沙盒文件系统,如果用户正在使用其他浏览器回退到其他代码。我尝试了以下方法:

print("Attempt to access filesystem");
window.requestFileSystem(1024 * 1024, persistent: false)
    ..then((FileSystem) => print("successfully accessed FileSystem"),onError:(e)
    {
        print("failed to access FileSystem");
    });

在firefox vs. chrome中测试这个我的问题是firefox中似乎没有达到错误处理程序(唯一打印的是“尝试访问文件系统”)。我想知道问题是firefox没有处理.then()语法。如果是这种情况,有人可以建议我如何检查浏览器是否支持Futures。一般来说,任何人都可以建议我如何实现这一目标吗?

1 个答案:

答案 0 :(得分:1)

使用async / await

处理错误更容易
import 'dart:html';
main() async {
  try {
    print("Attempt to access filesystem");
    var fileSystem = await window.requestFileSystem(1024 * 1024, persistent: false);
    print("successfully accessed FileSystem");
  } catch(e) {
    print(e);
    print("failed to access FileSystem");
  }
}

DartPad example

您的代码try / catch也可以使用(除了onError,因为错误发生在同步代码中(方法window.requestFileSystem不存在(在Safari)

DartPad example