Описание
 Используйте API chrome.alarms для планирования запуска кода периодически или в определенное время в будущем.
Разрешения
alarmsМанифест
 Чтобы использовать API chrome.alarms , объявите разрешение "alarms" в манифесте :
{
  "name": "My extension",
  ...
  "permissions": [
    "alarms"
  ],
  ...
}
Примеры
В следующих примерах показано, как использовать и реагировать на сигналы тревоги. Чтобы опробовать этот API, установите пример API сигнализации из репозитория chrome-extension-samples .
Установите будильник
В следующем примере устанавливается сигнал тревоги в Service Worker при установке расширения:
service-worker.js:
chrome.runtime.onInstalled.addListener(async ({ reason }) => {
  if (reason !== 'install') {
    return;
  }
  // Create an alarm so we have something to look at in the demo
  await chrome.alarms.create('demo-default-alarm', {
    delayInMinutes: 1,
    periodInMinutes: 1
  });
});
Реагировать на сигнал тревоги
В следующем примере устанавливается значок панели инструментов действий на основе названия сработавшего будильника.
service-worker.js:
chrome.alarms.onAlarm.addListener((alarm) => {
  chrome.action.setIcon({
    path: getIconPath(alarm.name),
  });
});
Типы
Alarm
Характеристики
- имянить Название этого будильника. 
- периодВМинутахномер необязательно Если значение не равно нулю, сигнал тревоги повторяется и сработает снова через periodInMinutesминут.
- запланированное времячисло Время срабатывания этого будильника, запланированное в миллисекундах после начала эпохи (например, Date.now() + n). Из соображений производительности будильник мог быть отложен на произвольную величину дольше этого времени.
AlarmCreateInfo
Характеристики
- delayInMinutesномер необязательно Длительность времени в минутах, по истечении которого должно сработать событие onAlarm.
- периодВМинутахномер необязательно Если событие onAlarm установлено, оно будет срабатывать каждые periodInMinutesминут после начального события, указанного в параметреwhenилиdelayInMinutes. Если событие не установлено, будильник сработает только один раз.
- когданомер необязательно Время, в которое должен сработать будильник, в миллисекундах после эпохи (например, Date.now() + n).
Методы
clear()
chrome.alarms.clear(
name?: string,
callback?: function,
): Promise<boolean>
Сбрасывает будильник с указанным именем.
Параметры
- имястрока необязательная Имя будильника, который нужно сбросить. По умолчанию — пустая строка. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(wasCleared: boolean) => void - был очищенбулев 
 
Возврат
- Обещание<логическое> Хром 91+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
clearAll()
chrome.alarms.clearAll(
callback?: function,
): Promise<boolean>
Сбрасывает все сигналы тревоги.
Параметры
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(wasCleared: boolean) => void - был очищенбулев 
 
Возврат
- Обещание<логическое> Хром 91+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
create()
chrome.alarms.create(
name?: string,
alarmInfo: AlarmCreateInfo,
callback?: function,
): Promise<void>
 Создаёт будильник. При наступлении времени, указанного в alarmInfo , срабатывает событие onAlarm . Если есть другой будильник с таким же именем (или без имени, если имя не указано), он будет отменён и заменён этим будильником.
 Чтобы снизить нагрузку на компьютер пользователя, Chrome ограничивает срабатывание будильников максимум раз в 30 секунд, но может задерживать их на произвольное время. То есть, если установить значение delayInMinutes или periodInMinutes меньше 0.5 , оно не будет учтено и вызовет предупреждение. when можно установить менее чем через 30 секунд после «now» без предупреждения, но будильник не будет срабатывать как минимум 30 секунд.
Чтобы облегчить отладку вашего приложения или расширения, после его загрузки в распакованном виде нет ограничений на частоту срабатывания будильника.
Параметры
- имястрока необязательная Необязательное имя для идентификации этого сигнала тревоги. По умолчанию — пустая строка. 
- alarmInfoОписывает, когда должен сработать будильник. Начальное время должно быть указано либо параметром when, либоdelayInMinutes(но не обоими). Если заданperiodInMinutes, будильник будет повторяться каждыеperiodInMinutesминут после начального события. Если для повторяющегося будильника не заданы ниwhen, ниdelayInMinutes, в качестве значения по умолчанию дляdelayInMinutesиспользуетсяperiodInMinutes.
- перезвонитьфункция необязательна Хром 111+Параметр callbackвыглядит так:() => void 
Возврат
- Обещание<void> Хром 111+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
get()
chrome.alarms.get(
name?: string,
callback?: function,
): Promise<Alarm | undefined>
Возвращает сведения об указанном сигнале тревоги.
Параметры
- имястрока необязательная Имя будильника, который нужно получить. По умолчанию — пустая строка. 
- перезвонитьфункция необязательна Параметр callbackвыглядит так:(alarm?: Alarm) => void - тревогаСигнализация опционально 
 
Возврат
- Обещание< Сигнализация | не определено> Хром 91+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы. 
getAll()
chrome.alarms.getAll(
callback?: function,
): Promise<Alarm[]>
Получает массив всех будильников.
Параметры
Возврат
- Обещание< Сигнализация []> Хром 91+- Обещания поддерживаются только для Manifest V3 и более поздних версий, на других платформах необходимо использовать обратные вызовы.