Как исправить, что подписка наблюдаемая печатает любые данные - PullRequest
0 голосов
/ 11 мая 2019

Моя ошибка в том, что когда я дохожу до this.autoPrinter ();Они должны напечатать текст, который работает нормально, я думаю, что проблема в наблюдаемом, но я застрял на этом, я не знаю, если это что-то еще, мне действительно нужна помощь в этом !!!

Iпопытался поместить метод autoprinter из подписки, внутри и раньше, но ничего не происходит, печать по-прежнему пуста, но метод принтера работает нормально на других компонентах

private CTomatic(orders: Array<Order>): void {
  const Ct = Number(window.localStorage.getItem('defaultCookingTime'));
  if (orders.length > 0) {
    orders.forEach(order => {
      if (
        order.partner_order_state === ORDER_STATE.NEWORDER &&
        (window.localStorage.getItem('cookingTime') === 'true' ? true : false)
      ) {
        this.ordersService
          .takeOrder(order.id, this.cookingTime(order, Ct))
          .retry(5)
          .subscribe(
            result => {
              this.autoPrinter();
              this.autoupdatethatshit();
            },
            (err: HttpErrorResponse) => {
              const error = err.error ? err.error.error.message : err.statusText;
              this.snackbarService.showMessageSnackbar(error);
              this.autoupdatethatshit();
            }
          );
      }
    });
  }
}

public autoPrinter(): void {
  if (this.notificationPrintIsEnable === true) {
    window.setTimeout(() => this.printerService.print(), 2000);
  }
}

public autoupdatethatshit(): void {
  setTimeout(() => {
    this.ordersService.getOrders();
  }, 5000);
}


--------------in this method the print method works fine-------------

public takingOrder() {
  if (!this.disabled) {
    this.disabled = true;
    this.showLoading.emit(true);
    this.ordersService
      .takeOrder(this.orderDetail.id, this.cookingTime)
      .subscribe(
        result => {
          this.takeOrderEvent.emit({
            id: this.orderDetail.id,
            cooking_time: this.cookingTime
          });
          this.disabled = false;
          this.showLoading.emit(false);
          this.orderAccept.emit();
          this.autoPrinter();
        },
        (err: HttpErrorResponse) => {
          this.showLoading.emit(false);
          const error = err.error ? err.error.error.message : err.statusText;
          this.disabled = false;
          this.snackbarService.showMessageSnackbar(error);
          this.orderAccept.emit();
        }
      );
  }
}

Я ожидаю, что метод печати внутри подписки показываетданные печатаются так же, как и в других компонентах, которые пишутся одинаково

...