Question: It is my first day with tf and keras. I had a quick tutorial which worked fine, but left me with a lot of questions.
Can someone show me how to get two data inputs instead of one?

```py
import keras
import numpy as np

model = keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd',loss='mean_squared_error')

xs = np.array([1,2,3,4,5,6,7], dtype=int) # input data 1
ys = np.array([8,11,14,17,20,23,26], dtype=int)

# formel is : 3*x+5

model.fit(xs, ys, epochs=500)

print(model.predict([10.0]))

```

Answer: 
I know you've specified using rxjs, however you've also specified that `fetchData()` returns a `promise` and not an `observable`. In this case I would suggest using `async` and `await` rather than rxjs.

```js
  async retryFetch() {
    let counter = 0;
    while (counter++ < 20 && !this.data) {
      this.data = await this.fetchData(counter);
    }
  }

```

You can put whatever you want in the conditional.

Even if your api call returned an observable, I would still suggest wrapping it in a promise and using this very readable solution.

The stackblitz below wraps a standard `http.get` with a promise and implements the above function. The promise will randomly return the data or undefined.

<https://stackblitz.com/edit/angular-ivy-rflclt?file=src/app/app.component.ts>
```
let count = 0
const timerId = setTimout( () =>{
   if(count){
      fetchData(`id_${count}`)
   }else{
      fetchData('id')
   }
   count = count + 1
,60000}) //runs every 60000 milliseconds

const stopTimer = () =>{ //call this to stop timer
    clearTimeout(timerId);
}

```