spinner
await crafttechApi.spinner(array);
Описание
Заголовок раздела «Описание»Отображает окно с индикатором выполнения (спиннером) и может показывать сообщения об успехе или ошибке в зависимости от условий. Метод асинхронный и возвращает успешное значение (resolve) только после того, как сообщение будет отображено.
Параметры
Заголовок раздела «Параметры»- array (object[]) — необязательный параметр; массив из трёх объектов с параметрами заголовка и сообщения для разных этапов (основной, успех, ошибка). Каждый объект имеет поля title и msg:
{ title: string; // Заголовок сообщения msg: string; // Текст сообщения}
Первый объект — заголовок и текст, отображаемые в сообщении при старте спиннера. Второй объект — заголовок и текст, отображаемые в сообщении о завершении. Третий объект — заголовок и текст, отображаемые в сообщении об ошибке.
Если массив не передан или не переданы объекты (или какое-то из их свойств) - будут назначены значения по умолчанию:
[ { title: "R7 Office", msg: "Выполнение макроса, не закрывайте окно..." }, { title: "R7 Office", msg: "Готово!" }, { title: "R7 Office", msg: "Ошибка выполнения!" },];
Возвращает
Заголовок раздела «Возвращает»- Экземпляр SimpleSpinner, в котором доступны методы
done()
,successMsg()
,errorMsg()
иnewStatus()
.
- done() — закрывает окно спиннера;
- successMsg() — закрывает окно спиннера и показывает сообщение об успешном завершении.
- errorMsg(err?: string) — закрывает окно спиннера и показывает сообщение об ошибке. Если параметр не передан, используется значение из
array
либо по умолчанию; - newStatus(newMsg: string) — обновляет текст внутри спиннера;
Пример № 1
Заголовок раздела «Пример № 1»let spinner = await crafttechApi.spinner();setTimeout(() => spinner.done(), 2000);
Пример № 2
Заголовок раздела «Пример № 2»let value = null;let spinner = await crafttechApi.spinner( [ { title: "Заголовок спиннера", msg: "Сообщение спиннера" }, { title: "Заголовок сообщения об успехе", msg: "Сообщение об успехе" }, { title: "Заголовок сообщения об ошибке", msg: "Сообщение об ошибке" }, ], () => value === 1, true);setTimeout(() => (value = 1), 2000);
Пример № 3
Заголовок раздела «Пример № 3»let spinner = await crafttechApi.spinner();
(async () => { try { await new Promise((_, rj) => setTimeout(() => rj(new Error("Критическая ошибка!")), 2000) ); } catch (error) { spinner.errorMsg(error.message); }})();
Обратная связь: support@crafttech.ru