Передать значение в функцию обратного вызова - PullRequest
0 голосов
/ 07 июня 2018

Я знаю, что есть несколько вопросов, касающихся этой темы.Но я не нашел решения для моей проблемы.

В моем проекте есть веб-работник, который должен управлять всеми вызовами 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 из соответствующего вызова, а не последний, переданный работнику?

...