Windows 8 Win 8应用程序:在roamingfolder中保存和检索数据

Windows 8 Win 8应用程序:在roamingfolder中保存和检索数据,windows-8,windows-runtime,winjs,Windows 8,Windows Runtime,Winjs,我试图在一个使用JavaScript的应用程序中,将一些用户数据存储到Windows存储的roamingFolder方法/属性中。我正在跟踪开发中心的一个示例代码,但没有成功。我的代码片段如下:(或完整项目的SkyDrive链接:) filereadcounter:function(){ roamingFolder.getFileAsync(文件名) .then(函数(文件名){ 返回Windows.Storage.FileIO.readTextAsync(文件名); }).完成(功能(数据){

我试图在一个使用JavaScript的应用程序中,将一些用户数据存储到Windows存储的roamingFolder方法/属性中。我正在跟踪开发中心的一个示例代码,但没有成功。我的代码片段如下:(或完整项目的SkyDrive链接:)

filereadcounter:function(){
roamingFolder.getFileAsync(文件名)
.then(函数(文件名){
返回Windows.Storage.FileIO.readTextAsync(文件名);
}).完成(功能(数据){
var dataToRead=JSON.parse(数据);
var dataNumber=dataToRead.count;
var message=“您保存的转换”;
//对于(变量i=0;i

我在navigator模板的item.js文件的ready方法中调用fileDisplayOutput函数,以检索上一个会话的数据。但它总是显示空白。我想保存最多5个用户可能需要保存的数据

我在按原样运行您的代码时遇到了一些问题,但这与问题无关。总之,您并不是在实际读取文件。注意此代码,当承诺履行时,没有
然后
完成
可执行

返回Windows.Storage.FileIO.readTextAsync(文件名)

我在你的示例解决方案中破解了这个,它正在工作。。。典型的注意事项不是生产代码:)

filereadcounter:函数(){
roamingFolder.getFileAsync(文件名)。然后(
函数(文件名){
Windows.Storage.FileIO.readTextAsync(文件名).done(
功能(数据){
var dataToRead=JSON.parse(数据);
var dataNumber=dataToRead.count;
var message=“您保存的转换”;
//对于(变量i=0;i
但是嵌套承诺的返回值不应该传递给父承诺的下一个延续吗?当您这样编写时,内部函数不会返回承诺,使得外部函数无法等待任务完成(假设在某个时候可能需要这样做)。
filesReadCounter: function() {
roamingFolder.getFileAsync(filename)
    .then(function (filename) {
        return Windows.Storage.FileIO.readTextAsync(filename);
    }).done(function (data) {
        var dataToRead = JSON.parse(data);
        var dataNumber = dataToRead.count;
        var message = "Your Saved Conversions";
        //for (var i = 0; i < dataNumber; i++) {
        message += dataToRead.result;
        document.getElementById("savedOutput1").innerText = message;
        //}
        //counter = parseInt(text);
        //document.getElementById("savedOutput2").innerText = dataToRead.counter;
    }, function () {
        // getFileAsync or readTextAsync failed.
        //document.getElementById("savedOutput2").innerText = "Counter: <not found>";
    });
},

filesDisplayOutput: function () {
    this.filesReadCounter();
}
filesReadCounter: function () {
        roamingFolder.getFileAsync(filename).then(
            function (filename) {
                Windows.Storage.FileIO.readTextAsync(filename).done(
                    function (data) {
                        var dataToRead = JSON.parse(data);
                        var dataNumber = dataToRead.count;
                        var message = "Your Saved Conversions";
                        //for (var i = 0; i < dataNumber; i++) {
                        message += dataToRead.result;
                        document.getElementById("savedOutput1").innerText = message;
                        //}
                        //counter = parseInt(text);
                        //document.getElementById("savedOutput2").innerText = dataToRead.counter;

                    }, function () {

                        // readTextAsync failed.
                        //document.getElementById("savedOutput2").innerText = "Counter: <not found>";
                    });
            },
            function () {
                // getFileAsync failed 
            })
    },