将值传递给回调函数

时间:2018-06-07 13:54:50

标签: javascript web-worker

我知道针对此主题有几个问题。但我没有找到解决问题的方法。

我的项目中有一个webworker应该管理所有ajax调用。由于这种架构,我无法将回调函数传递给ajax函数。我的解决方法是一个令牌,应该放入工作人员的答案中,以便前端可以决定做什么。

所以我在工作人员里面的电话看起来像这样:

ajax({
    success_func : function(data) {
        self.postMessage({
            task : cb,
            data : data
        }
    }
});

我测试过的最可怕的事情是

ajax({
    success_func : (function(cb) {
        return function(data) {
            self.postMessage({
                task : this.cb,
                data : data
            });
        }.bind({cb : cb});
    })(cb),
});

但是一旦我在执行第一个ajax调用之前调用了worker,我就得到了两个不同数据的答案,但同样的cb

如何强制该函数使用相应调用中的cb而不是传递给worker的最后一个?

0 个答案:

没有答案