genbodev
4/29/2020 - 5:55 PM

Callback using

// bind, call, apply в чём разница? https://ru.stackoverflow.com/questions/426699/bind-call-apply-%D0%B2-%D1%87%D1%91%D0%BC-%D1%80%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0
// Передать аргументы в callback https://stackoverflow.com/questions/17711211/bind-variables-to-callback-function
// Объяснение callback https://alexdev.ru/869

checkLimits: function (serviceId, callbackSuccess) {
    		debugger;
        $.loader(_('Получение разрешения на выписку'));
        $.get('/module/backoffice/SLBackoffice/checkLimits', {type: 'trains', service_id: serviceId}, function (data) {
            $.prompt.close();
        		debugger;
            bindingsUtil.updateAjaxResponse(data);
            if (data.response.result.error === true) {
                $.showerror(data.response.result.descr);
            } else {
                if (data.response.result.allow === true) {
                    callbackSuccess.apply(this); // <----------------------------------------------------------------
                } else {
                    var buttons = {};
                    buttons[_('ОК')] = true;
                    $.slPrompt(data.view, {
                        close: true,
                        title: _('Выписка приостановлена'),
                        prefix: 'block_',
                        buttons: buttons,
                        width: 800,
                    });
                }
            }
        }, 'json');

},

func1: function(f, service_id) {
	alert('savePolicyViolationReason');
	alert(f);
	alert(service_id);
}

// ex 1 
ufs.checkLimits(data.service_id, function() {
	debugger;
	ufs.func1(f, data.service_id);
});

// ex 2
ufs.checkLimits(data.service_id, ufs.func1.bind(this, f, data.service_id));