Javascript 如何从这个arrow函数返回pkgInfo对象?

Javascript 如何从这个arrow函数返回pkgInfo对象?,javascript,arrow-functions,Javascript,Arrow Functions,我安装了一个npm库reiko解析器,它使用控制台日志显示pkgInfo对象。我更改了返回此pkgInfo对象的代码,但它返回未定义的对象。我不熟悉arrow函数,所以我完全不知道如何获取pkgInfo对象,除非我声明一个静态变量并将pkgInfo对象的值赋给它,这是一种糟糕的做法 function get_icon(serverFilePath) { const readerPkg = new PkgReader(serverFilePath, 'apk', { withIcon: t

我安装了一个npm库reiko解析器,它使用控制台日志显示pkgInfo对象。我更改了返回此pkgInfo对象的代码,但它返回未定义的对象。我不熟悉arrow函数,所以我完全不知道如何获取pkgInfo对象,除非我声明一个静态变量并将pkgInfo对象的值赋给它,这是一种糟糕的做法

function get_icon(serverFilePath) {
    const readerPkg = new PkgReader(serverFilePath, 'apk', { withIcon: true });
    return readerPkg.parse((err, pkgInfo) => {
        
        if (err) {
            console.log(err);
        } else {
            console.log(pkgInfo); // works with console log but not return??
           return pkgInfo //undefined
        }
    });
   
}
编辑:这也是npm pg中给出的代码

const reader =

     new PkgReader(filePath, 'apk', { withIcon: true });
    reader.parse((err, pkgInfo) => {
      if (err) {
        console.error(err);
      } else {
        console.log(pkgInfo); // pkgInfo.icon is encoded to base64
      }
    });

应该是
return pkgInfo
与普通函数相同

No,因为某种原因,如果我在解析函数中调用return,它将返回未定义的值。如果只执行
return readerPkg.parse((err,pkgInfo)=>{if(err){console.log(err);}else{console.log(pkgInfo)会发生什么;          }     });这样行吗?它仍然返回未定义的…然后它将pkgInfo打印到控制台。看起来reader.parse总是在调用返回后在函数末尾调用