我的目标是尝试访问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。一般来说,任何人都可以建议我如何实现这一目标吗?
答案 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");
}
}
您的代码try
/ catch
也可以使用(除了onError
,因为错误发生在同步代码中(方法window.requestFileSystem
不存在(在Safari)