同步地从Tizen的范围内检索和访问值

时间:2017-02-08 19:10:30

标签: javascript tizen tizen-web-app

可能我不是以正确的方式问它。我对Tizen有点新意。 这是我为tizen设置的代码。

respons =   tizen.filesystem.resolve("documents", function(dir) 
                {
                  file = dir.resolve("myfile.txt");
                  if(file.isFile){                  //if file is present then fetch the information.
                    var res_one = file.openStream("r", 
                            function(fs) { 
                               var  my_json = JSON.parse(fs.read(file.fileSize)); 
                               fs.close();
                               res_two = my_json.json_value;
                               return res_two;
                             },
                            function(e) {
                            console.log("Error " + e.message);
                            return null;//if there is any error then return null
                            }, "UTF-8");
                     return res_one;
                  }
                  else{
                  return null; //if file is not present then return null
                  }
        });

基本上我的显示器(Installed Tizen OS)上有一个包含json的文件:  json_value:“我的信息”

我正在尝试获取要在我的javascript代码中使用的信息。我能够获取该信息(使用console.log检查)。但它没有在res_one或回复中返回。

简而言之,我想在tizen.filesystem.resolve之外访问json(...

提前致谢。

1 个答案:

答案 0 :(得分:0)

我做到了。基本上这是javascript的异步行为,所以我使用回调来完成它。

function to_fetch_the_value_and_chain_process(passed_function){
    tizen.filesystem.resolve("documents", function(dir){
                      file = dir.resolve("myfile.txt");
                      if(file.isFile){      //if file is present then fetch the information.
                        var res_one = file.openStream("r", 
                                function(fs) { 
                                   var  my_json = JSON.parse(fs.read(file.fileSize)); 
                                   fs.close();
                                   res_two = my_json.json_value;
                                   passed_function(res_two);
                                 },
                                function(e) {
                                console.log("Error " + e.message);
                                passed_function(null);;//if there is any error then return null
                                }, "UTF-8");
                         return res_one;
                      }
                      else{
                         passed_function(null); //if file is not present then return null
                      }
    });
}

funtion passed_function(retrieve_res_two){
    alert(retrieve_res_two );
    //use retrieve_res_two and chain the next code here.....
}

to_fetch_the_value_and_chain_process(passed_function);