Angular 7 Запустить функцию в 09:41 - PullRequest
0 голосов
/ 20 декабря 2018

Привет, я использую Angular 7 и FireBase.Я просто хочу написать функцию, которая отключается каждый день в 9:41 без необходимости входа в приложение.Возможно ли на угловом?

Ответы [ 3 ]

0 голосов
/ 20 декабря 2018

Вы не можете сделать это с Angular надежно .Вы хотите запланировать работу cron для запуска этой функции firebase.Взгляните на эту запись в своем блоге, где они объясняют один из способов сделать это.


Редактировать : setInterval подход.Если не , если это неизбежно.

Теоретически, вы можете использовать setInterval для этого.Но это было бы привередливо.

Скажем, у вас есть служба Angular и метод.Вы называете эту услугу CronService.В компоненте приложения вы можете вызывать его следующим образом:

this.cronService.startScheduledJob();

Теперь вопрос заключается в том, когда его вызывать.

Вам нужно будет вызвать функцию один раз в точное время, 9:41.Скажем, у вас есть кнопка:

<button (click)="startMyJob()" [disabled]="isJobRunning">Start job</button>

Теперь ваш компонент имеет следующее:

const ONE_DAY = 86400 * 1000; // one day has 86400 seconds, but we need milliseconds.

class Component {

  // Property to know if we started:
  isJobRunning = false;
  public startMyJob() {
    if (!this.isJobRunning) {
      this.isJobRunning = true;
    }
    // Now comes your interval part:
    setInterval(() => this.cronService.startScheduledJob(), ONE_DAY);
  }
0 голосов
/ 20 декабря 2018

Вы можете рассмотреть возможность использования / расширения встроенного в Angular сервисного работника.

Ссылки, указанные на в этом посте , также могут быть полезны:

0 голосов
/ 20 декабря 2018

Нет - angular работает на веб-интерфейсе - поэтому только когда пользователь заходит на вашу страницу в браузере (однако ему не нужно входить в систему).Вам нужно сделать это на сервере

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...