Javascript Windows 8从文件夹读取文件,返回字符串
我只是想从Windows8应用程序的漫游文件夹中读取一个文件,然后返回一个字符串。log(text)正在打印正确的字符串,但我显然不是不理解承诺和延迟,就是弄乱了javascript。str未定义Javascript Windows 8从文件夹读取文件,返回字符串,javascript,windows-8,Javascript,Windows 8,我只是想从Windows8应用程序的漫游文件夹中读取一个文件,然后返回一个字符串。log(text)正在打印正确的字符串,但我显然不是不理解承诺和延迟,就是弄乱了javascript。str未定义 var getJsonString = function () { var jsonText; roamingFolder.getFileAsync(fileName) .then(function (file) { return
var getJsonString = function () {
var jsonText;
roamingFolder.getFileAsync(fileName)
.then(function (file) {
return Windows.Storage.FileIO.readTextAsync(file);
}).done(function (text) {
//Printing Correct String
console.log(text);
jsonText = text;
});
return jsonText;
}
var str = getJsonString();
console.log(str);
我看到了MSDN的文章,但仍然感到困惑。有人有主意吗
编辑:实际上,有没有更好的方法在漫游文件夹中存储JSON字符串?现在我正在创建和使用一个文本文件。您的代码是异步的。
done()
你需要回报一个承诺。像这样的东西应该可以
var getJsonStringAsync = function() {
return roamingFolder.getFileAsync("myData.json")
.then(function(file) {
return Windows.Storage.FileIO.readTextAsync(file);
});
};
getJsonStringAsync().then(function(text) {
console.log(text);
});
查看getJsonStringAsync函数现在如何返回.then()函数的结果?函数返回一个承诺。我已经重命名了您的函数,添加了异步后缀,因为它现在是一个异步函数,这是惯例
现在,无论何时使用该函数,都可以调用它并使用.then()(或.done())并指定一个函数,该函数的参数是promise提供给您的数据
希望这有帮助。您可以查看更多信息,我在codeSHOW应用程序(和)中提供的Promissions演示可能也会对您的概念有所帮助。欢迎来到精彩的异步世界!你不能那样做,这是有道理的。如何将该字符串提取出来,转换为JSON对象,以便在程序中进行操作?我现在正在读有关promise objects的文章,非常感谢Jeremy!我用我需要的方式下载了你的应用程序,因为你显然是个好老师。