我知道针对此主题有几个问题。但我没有找到解决问题的方法。
我的项目中有一个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的最后一个?