SyntaxError: missing ) after argument list while using LZMA-js

SyntaxError: missing ) after argument list while using LZMA-js

我正在尝试使用找到的 LZMA-JS 库压缩字符串 here。这是我的 javascript:

var reader  = new FileReader();

reader.addEventListener("load", function () {
    var big_code = reader.result;
    console.log(big_code.length);
    var my_lzma = new LZMA();
    my_lzma.compress(my_lzma, 1, on_finish(result, error) {
        code = result;
    });
    console.log(code.length);
}, false);

错误发生在这一行

my_lzma.compress(my_lzma, 1, on_finish(result, error) { //the rest occurs below

但是,当我通过像这样删除 {} 括号来更改此行时

my_lzma.compress(my_lzma, 1, on_finish(result, error));

错误消失了。不幸的是,这使得代码无用,因为我需要 result

我在互联网上搜索了一个多小时,试图找到解决此错误的方法。我不相信这是重复的,因为我没有找到任何相关的东西。

为什么会出现此错误?

文档可能令人困惑 - 函数的作用,而不是名称,是 on_finish,所以使用它来表示您正在创建一个内联函数:

my_lzma.compress(my_lzma, 1, function (result, error) {
    code = result;
});

参见example usage here