Класс fcf.Actions

Объект выполнения асинхронных действий. Реализует задачи объекта Promise, но не разрывает задачу исполнения, сохраняет контекст запроса на стороне сервера, а также использует расширенный набор методов.

Описание класса Методы
fcf.Actions asyncEach(object|array|function a_collection, function a_cb) - Выполняет множественный параллельный запуск асинхронной задачи a_cb с параметрами указанными в параметре a_collection
fcf.Actions catch(function a_cb) - Добавляет функцию обработчик ошибки к набору отложенных операций
fcf.Actions each(object|array|function a_collection, function a_cb) - Выполняет множественный запуск асинхронной задачи a_cb с параметрами указанными в параметре a_collection
fcf.Actions error(ErrorObject a_error) - Завершает очередь исполнения с ошибкой
fcf.Actions finally(function a_cb) - Функция добавляет отложенное действие в очередь обработки, которое выполняется как в случае возникновения ошибки, так и при успешном выполнении
fcf.Actions then(function a_cb, function a_cberror = undefined) - Помещает задачу в очередь выполнения, переданную в параметре a_cb
Методы
fcf.Actions asyncEach(object|array|function a_collection, function a_cb) Выполняет множественный параллельный запуск асинхронной задачи a_cb с параметрами указанными в параметре a_collection Аргументы: object|array|function a_collection - Коллекция с параметрами запуска асинхронной задачи.

В качестве параметра может выступать функция, которая должна возвращать коллекцию. Вызов вызов функции выполняется перед выполнением задачи.

function a_cb - Обратный вызов функции обработчика асинхронной операции, который выполняется по каждому элементу коллекции a_collection

Функция имеет две сигнатуры, от которых зависит поведение метода.

  1. mixed func(mixed a_key, mixed a_value, mixed a_res) - Действие функции считается завершенным после выполнения метода или после выполнения возвращенного объекта Promise|fcf.Actions.
  2. mixed func(mixed a_key, mixed a_value, mixed a_res, fcf.Actions.Act a_act) - Действие обработчика считается завершенным после вызова fcf.Action.Act.сomplate() на объекте a_act или fcf.Action.Act.error() в случае возникновения ошибки.

mixed a_key - ключ элемента коллекции

mixed a_value - значение элемента коллекции

mixed a_res - результат предыдущего обработчика

fcf.Actions.Act a_act - объект подтверждения завершения обработчика

Возвращаемое значение: fcf.Actions Возвращает указатель на себя Примеры Пример 1 Пример использования метода let actions = new fcf.Actions() actions.asyncEach(["one", "two", "three"], (a_key, a_value, a_res, a_act)=>{ setTimeout(()=>{ console.warn(a_value); a_act.complete(); }, Math.floor(Math.random() * 1000)) }) .then(()=>{ console.warn("complete"); }) Результат: three one two complete
fcf.Actions catch(function a_cb) Добавляет функцию обработчик ошибки к набору отложенных операций Аргументы: function a_cb - Функция обработки ошибки. Сигнатура функции: function(ErrorObject a_error); Возвращаемое значение: fcf.Actions Возвращает указатель на себя
fcf.Actions each(object|array|function a_collection, function a_cb) Выполняет множественный запуск асинхронной задачи a_cb с параметрами указанными в параметре a_collection Аргументы: object|array|function a_collection - Коллекция с параметрами запуска асинхронной задачи.

В качестве параметра может выступать функция, которая должна возвращать коллекцию. Вызов вызов функции выполняется перед выполнением задачи.

function a_cb - Обратный вызов функции обработчика асинхронной операции, который выполняется по каждому элементу коллекции a_collection

Функция имеет две сигнатуры, от которых зависит поведение метода.

  1. mixed func(mixed a_key, mixed a_value, mixed a_res) - Действие функции считается завершенным после выполнения метода или после выполнения возвращенного объекта Promise|fcf.Actions.
  2. mixed func(mixed a_key, mixed a_value, mixed a_res, fcf.Actions.Act a_act) - Действие обработчика считается завершенным после вызова fcf.Action.Act.сomplate() на объекте a_act или fcf.Action.Act.error() в случае возникновения ошибки.

mixed a_key - ключ элемента коллекции

mixed a_value - значение элемента коллекции

mixed a_res - результат предыдущего обработчика

fcf.Actions.Act a_act - объект подтверждения завершения обработчика

Возвращаемое значение: fcf.Actions Возвращает указатель на себя Примеры Пример 1 Пример использования метода let actions = new fcf.Actions() actions.each(["one", "two", "three"], (a_key, a_value, a_res, a_act)=>{ setTimeout(()=>{ console.warn(a_value); a_act.complete(); }, Math.floor(Math.random() * 1000)) }) Результат: one two three
fcf.Actions error(ErrorObject a_error) Завершает очередь исполнения с ошибкой Аргументы: ErrorObject a_error - Объект ошибки Возвращаемое значение: fcf.Actions Указатель на себя
fcf.Actions finally(function a_cb) Функция добавляет отложенное действие в очередь обработки, которое выполняется как в случае возникновения ошибки, так и при успешном выполнении Аргументы: function a_cb - Обратный вызов функции обработчика. Сигнатура функции: function() Возвращаемое значение: fcf.Actions Указатель на себя
fcf.Actions then(function a_cb, function a_cberror = undefined) Помещает задачу в очередь выполнения, переданную в параметре a_cb Аргументы: function a_cb - Обратный вызов функции обработчика.

Функция имеет две сигнатуры, от которых зависит поведение метода.

  1. mixed func(mixed a_res) - Действие функции считается завершенным после выполнения метода или после выполнения возвращенного объекта Promise|fcf.Actions.
  2. mixed func(mixed a_res, fcf.Actions.Act a_act) - Действие обработчика считается завершенным после вызова fcf.Action.Act.сomplate() на объекте a_act или fcf.Action.Act.error() в случае возникновения ошибки.

mixed a_res - результат предыдущего обработчика

fcf.Actions.Act a_act - объект подтверждения завершения обработчика

function a_cberror - Функция обработки ошибки. Сигнатура функции: function(ErrorObject a_error);
Возвращаемое значение: fcf.Actions Возвращает указатель на себя Примеры Пример 1 Пример использования метода fcf.Actions.then() в режиме без подтверждения завершения операции. async function test(){ let actions = new fcf.Actions(); return actions .then(()=>{ return new Promise(function(resolve, reject) { setTimeout(()=>{ console.warn("action 1"); resolve("001"); }, 1000); }); }). then((a_res)=>{ console.warn(`result action 1: ${a_res}`); console.warn("action 2"); return "002"; }) } let resultAction2 = await test(); console.warn(`result action 2: ${resultAction2}`); console.warn("exit"); Результат: action 1 result action 1: 001 action 2 result action 2: 002 exit Пример 2 Пример использования метода fcf.Actions.then() в режиме подтверждения завершения операции. async function test(){ let actions = new fcf.Actions(); return actions .then((a_res, a_act)=>{ setTimeout(()=>{ console.warn("action 1"); a_act.complete("001") }, 1000); }). then((a_res)=>{ console.warn(`result action 1: ${a_res}`); console.warn("action 2"); return "002"; }); } let resultAction2 = await test(); console.warn(`result action 2: ${resultAction2}`); console.warn("exit"); Результат: action 1 result action 1: 001 action 2 result action 2: 002 exit