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