当应用程序崩溃时,promises会发生什么?

时间:2013-01-09 09:42:35

标签: windows-8 microsoft-metro winjs

我正在使用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也会完成,但是我能否确定情况总是如此,并且文件将被创建和编写?

感谢。

1 个答案:

答案 0 :(得分:0)

如果应用程序崩溃,我认为您无法确定Promise是否会完成。如果返回Promise的操作足够快地完成,则可能。但是,如果你正在寻找保证,我认为你不会得到保证。

我建议采取防御性编码,以便在未创建文件时,您可以在下次运行应用时创建该文件。

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

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