我正在使用Javascript(WinJS)为Windows 8 Metro开发应用程序。
假设我有以下代码:
Windows.Storage.ApplicationData.current.localFolder.createFileAsync("test.dat", Windows.Storage.CreationCollisionOption.replaceExisting)
.done(
/* write some data to the file here */)
var x = null;
x.prop = 1;
很明显,之前的代码会在x.prop = 1行崩溃.createFileAsync Promise会发生什么?
做一个简单的调试测试会产生一个事实,即使应用程序崩溃,Promise也会完成,但是我能否确定情况总是如此,并且文件将被创建和编写?
感谢。
答案 0 :(得分:0)
如果应用程序崩溃,我认为您无法确定Promise是否会完成。如果返回Promise的操作足够快地完成,则可能。但是,如果你正在寻找保证,我认为你不会得到保证。
我建议采取防御性编码,以便在未创建文件时,您可以在下次运行应用时创建该文件。
当然,最重要的是,您应该进行适当的异常处理,以确保应用程序不会因为一个简单的异常而崩溃。
有关开发Windows应用商店应用的详细信息,请查看Generation App。