如何从函数内的回调中返回值?

时间:2016-06-23 05:34:21

标签: javascript function callback return

我试图创建一个简单的函数来获取JavaScript FileEntry和"转换"它成为JavaScript File对象。我在这里有基本功能:

function fileEntrytoFile(e){
  var f = 0;

  e.file(function(file){
    f = file;
  });
  return f;
}
返回时,

f仍为0。如何在?

中返回由回调函数生成的File对象

1 个答案:

答案 0 :(得分:7)

您需要返回一个承诺,因为FileEntry.file是异步的:

function fileEntrytoFile(e){
  return new Promise((resolve, reject) => e.file(resolve, reject));
}

fileEntrytoFile(fileEntry) . then(file => console.log(file.name));

以上使用ES6箭头功能和ES6承诺。