Javascript 对另一个对象的转换返回未定义的

Javascript 对另一个对象的转换返回未定义的,javascript,google-chrome,google-apps,Javascript,Google Chrome,Google Apps,我正在体验chrome应用程序,并尝试读取用户选择的目录中包含的文件。到目前为止效果良好,用户选择一个文件,然后将单个文件条目对象打印到我的控制台: 代码: 因此,如何从控制台查看条目[i]是一个FileEntry对象。 要从FileEntry读取,首先必须将其转换为文件对象。 在文件条目的文档中:我读到有一个函数void file( FileCallback successCallback,可选ErrorCallback ErrorCallback ); 您如何在上面的代码表中看到我试图通过以

我正在体验chrome应用程序,并尝试读取用户选择的目录中包含的文件。到目前为止效果良好,用户选择一个文件,然后将单个文件条目对象打印到我的控制台:

代码:

因此,如何从控制台查看条目[i]是一个
FileEntry
对象。 要从
FileEntry
读取,首先必须将其转换为
文件
对象。 在文件条目的文档中:我读到有一个函数
void file(
FileCallback successCallback,可选ErrorCallback ErrorCallback
);

您如何在上面的代码表中看到我试图通过以下方式实现这一点:

    a = entries[i].file(callback); 
......

var callback = function(){
    console.log("it works");
    console.log(a); 
} 
我的问题是
console.log(a)
不返回
对象文件
,而是未定义:

控制台:

我错了什么?如何测试它是否真的返回文件对象?谢谢

完整代码

var callback=function(){
console.log(“它工作”);
控制台日志(a);
} 
chooseDirButton.addEventListener('click',函数(e){
chrome.fileSystem.chooseEntry({type:'openDirectory'},函数(theEntry){
chrome.fileSystem.getDisplayPath(入口,函数(路径){
var reader=theEntry.createReader();
reader.readEntries(函数(条目){
对于(变量i=0;i
更改

var callback=function(){

致:

变量回调=函数(a){

我读到…“有一个函数

**void** file(
  FileCallback successCallback, optional ErrorCallback errorCallback
);
返回一个文件对象。“

正如您看到的,它不返回它,而是作为参数传递给回调。它们只是有一个糟糕的措辞

    a = entries[i].file(callback); 
......

var callback = function(){
    console.log("it works");
    console.log(a); 
} 
entry is [object FileEntry]   window.js:18
entry is [object FileEntry]   window.js:18
it works                      window.js:29
undefined                     window.js:30
it works                      window.js:29
undefined 
var callback = function(){
    console.log("it works");
    console.log(a); 
} 


chooseDirButton.addEventListener('click', function(e) {
  chrome.fileSystem.chooseEntry({type: 'openDirectory'}, function(theEntry) {

    chrome.fileSystem.getDisplayPath(theEntry, function(path) {

    var reader = theEntry.createReader();

        reader.readEntries(function(entries) {
          for (var i = 0; i < entries.length; ++i) {
            console.log("entry is " + entries[i]);
            a = entries[i].file(callback);    
          }
        });

    });
  });
});
**void** file(
  FileCallback successCallback, optional ErrorCallback errorCallback
);