Как завершить мой http-вызов на мой REST API? - PullRequest
0 голосов
/ 13 октября 2019

Я использую ionic с Node Server, где я реализовал REST API, но у меня возникла проблема: когда я несколько раз выполняю запрос на обновление в своем интерфейсе, сервер просто выполняет 6 запросов и затем перестает функционировать.

В Ionic App (FrontEnd) у меня есть это:

update_loc() {
    // Attempt to login in through our User service
    this.busloc.update_loc(this.track_info).subscribe((resp) => {
      console.log("Call provider in busloc.ts")
    }, (err) => {
      console.log("Updating location failed")
    });
  }

В моем провайдере (bus-loc.ts) у меня есть:

  update_loc(track_info: any) {
    let seq = this.api.post('update_loc', track_info).share();

    seq.subscribe((res: any) => {
      // If the API returned a successful response, locations has been updated
      if (res.status == 'success') {
         console.log("Location updated succesfully")
      } 
    }, err => {
      console.error('ERROR', err);
    });

    return seq;
  }

В BackEndУ меня есть следующая функция:

//Actualizar ubicacion
function updateLoc(req,res){
    body = req.body;    
    TrackInfo.findOne({ where: { id: body.id } })
    .then(tr_info=>{
        if (!tr_info){
            return res.status(404).send ('No track_info found');
        }

        tr_info.update({
            is_active: body.is_active,
            lat: body.lat,
            lon: body.lon
        })
        console.log("Updated track info succesfully")
        return res.status(200); 


    }).catch(err => {
        return res.status(500).send ('Server Error in updateLoc');
    });

}

Теперь я хочу знать, как я могу завершить вызов API, потому что я прочитал, что браузер (в моем случае Chrome) может выполнять только шесть запросов HTTP, и так какЯ вызываю update_loc () несколько раз подряд, сервер блокируется. Пожалуйста, любые предложения приветствуются. Спасибо за ваше внимание

1 Ответ

1 голос
/ 13 октября 2019

Вы можете отменить последний звонок, позвонив unsubscribe

  subscription: Subscription;
  update_loc() {
    // cancel last call
    this.subscription.unsubscribe();
    // Attempt to login in through our User service
    this.subscription = this.busloc.update_loc(this.track_info).subscribe((resp) => {
      console.log("Call provider in busloc.ts")
    }, (err) => {
      console.log("Updating location failed")
    });
  }

Более подробную информацию вы можете найти здесь: https://www.syntaxsuccess.com/viewarticle/angular-2.0-and-http

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