Документация для разработчиков
Темная тема

BX24.callBatch

В некоторых случаях возникает необходимость отправить несколько запросов подряд. Например, при создании необходимых сущностей в процессе инсталляции приложения. Для оптимизации процесса можно использовать пакетное выполнение запросов.

void BX24.callBatch(
	Object|Array calls,
	[Function callback[,
	Boolean bHaltOnError = false]]
);

В случае вызова до BX24.init выполнение запроса будет отложено.

Функция отправляет пакет запросов к REST-сервису.

Параметры

Параметр Описание
calls Обычный или ассоциативный массив (объект) с запросами. Каждый запрос представляет собой либо массив [имя_метода, параметры_метода], либо объект {method: имя_метода, params: параметры_метода}. В параметрах методов можно использовать макросы, позволяющие получить доступ к результатам предыдущих запросов текущего пакета. Макрос можно составить примерно так: $result[идентификатор_запроса][поле_ответа], где идентификатором запроса служит его ключ в массиве пакета запросов.
callback Функция-обработчик результата пакетного запроса. На вход получит массив или ассоциативный массив (объект) объектов ajaxResult с ключами, соответствующими ключам из пакета запросов.
bHaltOnError Флаг "прерывать исполнение пакета в при возникновении ошибки". По умолчанию - false (не прерывать).

Пример

BX24.callBatch({
	get_user: ['user.current', {}],
	get_department: {
		method: 'department.get',
		params: {
			ID: '$result[get_user][UF_DEPARTMENT]'
		}
	}
}, function(result)
{
	var l = result.get_department.data().length;
	var str = 'Текущий пользователь ' + result.get_user.data().NAME + ' ' + result.get_user.data().LAST_NAME + ' приписан к подразделени' + (l > 1 ? 'ям ' : 'ю ');

	for(var i = 0; i < l; i++)
	{
		str += i == 0 ? '' : ', ';
		str += result.get_department.data()[i].NAME;
	}

	alert(str);
});

Смотри также



© «Битрикс», 2001-2024, «1С-Битрикс», 2024