2013-01-09 38 views
2

我正在开发使用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也会被完成,但是我可以肯定,情况总是如此,并且该文件将被创建并写入?

谢谢。

回答

0

我不认为如果应用程序崩溃,您可以确定Promise将会完成。如果返回Promise的操作足够快地完成,它可能会执行。但是如果你正在寻找保证,我认为你不会那样做。

我会推荐使用防御性编码,这样如果文件没有创建,您可以在下次运行应用程序时创建它。

当然,最重要的是,你应该做适当的异常处理,以确保应用程序不会因为一个简单的异常而崩溃。

有关开发Windows应用商店应用的更多信息,请查看Generation App

+0

感谢您的回复。我知道正确的异常处理是要走的路,但是我有兴趣为应用程序创建一个自动化测试环境,如果它们确实发生了,它将捕获崩溃。这在应用程序在Windows应用商店上线之前会因为我知道之后我可以看到应用程序仪表板中的所有崩溃。 –

相关问题