【问题标题】:How do I return the pkgInfo object from this arrow function?如何从此箭头函数返回 pkgInfo 对象?
【发布时间】:2021-01-04 10:52:06
【问题描述】:

我安装了一个 npm 库 reiko 解析器,它使用控制台日志显示 pkgInfo 对象。我更改了代码以返回此 pkgInfo 对象,但它返回未定义。我是箭头函数的新手,所以我很迷茫如何获取 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
      }
    });

【问题讨论】:

    标签: javascript arrow-functions


    【解决方案1】:

    应该只是return pkgInfo 和普通函数一样

    【讨论】:

    • 不,如果我在解析函数本身中调用 return,它会返回 undefined。
    • 如果你只做return readerPkg.parse((err, pkgInfo) => { if (err) { console.log(err); } else { console.log(pkgInfo); } });会发生什么?这行得通吗?
    • 它仍然返回未定义...然后将 pkgInfo 打印到控制台。似乎 reader.parse 在调用返回后总是在函数末尾调用
    猜你喜欢
    • 2019-11-25
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多