Я знаю, что есть несколько вопросов, касающихся этой темы.Но я не нашел решения для моей проблемы.
В моем проекте есть веб-работник, который должен управлять всеми вызовами 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, я получу два ответа с разными данными, но с одним и тем же cb
Как я могузаставить функцию использовать cb из соответствующего вызова, а не последний, переданный работнику?