title: switchMap operation only running on first call?
body: <p>I have an angular application that makes a request to an Http service and calls a switchMap on another Http service. For some reason the request in the switchMap only runs the first time the parent call is called. Otherwise the parent request fires and the switchMap one doesn't, here is the code:</p>
  
  <pre><code>this._receivableService.newTenantDebitCredit(tenantCredit)
              .take(1)
              .switchMap(result =&gt;
                  // Refresh the lease receivables before giving result
                  this._receivableService.getAll({
                      refresh: true,
                      where: { leaseId: this.leaseId }
                  }).take(1).map(() =&gt; result)
              )
              .subscribe(
                  ...
              )
  </code></pre>
  
  <p>How can I make the getAll request in the switch map run every time the newTenantDebitCredit method is called above it?</p>
  
  <p>Edit: Here is the entirety of the function that is called on <code>click</code>. when i click the button the first time for a given unit both methods are executed. If I try a Unit that has already had that method called (without a refresh) only the first method is executed. I realize a lot of this may not be clear it's a rather large project at this point.</p>
  
  <pre><code>public submitTenantCredit() {
          this.isLoading = true;
          let tenantCredit: NewTenantDebitCreditData;
          let receivableDefinitions: ReceivableDefinition[] = [];
  
          // construct receivable defintions for NewTenantDebitData model
          receivableDefinitions = this._constructReceivableDefinitions();
  
          // construct data we will be POSTing to server.
          tenantCredit = new NewTenantDebitCreditData({
              siteId: this._apiConfig.siteId,
              leaseId: this.leaseId,
              isCredit: true,
              receivables: receivableDefinitions,
              reason: this.actionReason
          });
  
          // make service call and handle response
          this._receivableService.newTenantDebitCredit(tenantCredit)
              .take(1)
              .switchMap(result =&gt;
                  // Refresh the lease receivables before giving result
                  this._receivableService.getAll({
                      refresh: true,
                      where: { leaseId: this.leaseId }
                  }).take(1).map(() =&gt; result)
          )
              .take(1)
              .subscribe(
                  (receivables) =&gt; {
                      this.closeReasonModal();
                      let refreshLeaseId = this.leaseId;
                      this.leaseId = refreshLeaseId;
                      this.isLoading = false;
                      this.refreshBool = !this.refreshBool;
                      this._debitCreditService.refreshUnitInfo();
                      this._notifications.success(`The tenant credit for ${this.customerName} - Unit ${this.unitNumber} was submitted successfully`);
                  },
                  (error) =&gt; {
                      console.error(error);
                      this.isLoading = false;
                  }
              )
      }
  </code></pre>
  
  <p>If it helps <code>newTenantDebitCredit(</code>) is a <code>HTTP POST</code> request and <code>getAll()</code> is a <code>GET</code> request. </p>