Skills Take Time

I was sitting at my computer typing status updates for my team when my wife walked into my office. So I looked at her, smiling, and kept typing to finish the sentence as she was reading what I was typing.

When I finished she looked at me and says: “you’re typing and not even looking.”

It was then I realised for the first time in a long time I have a rather useful skill: I can touch type.

In fact, I can touch type on both a conventional keyboard and, depending on the device/operating system, on a phone.

I may be wrong, but based on much observation of others, I believe that may now be a relatively rare and valuable skill.

But I can tell you one thing for sure: it’s a skill that’s taken many, many, many hours and years of practice to master.

A simple example of an Observable/Subscribe function in TypeScript

I had to work with Observables in JavaScript (RxJS) today and found it, well, bloody hard to find some good examples.

Actually, it’s hard to know what to even search for to find information about Observables (do I search in relation to Angular, Javascript, ECMAScript, TypeScript…?). I found it even harder to decipher most of the highly technical documentation that has been written.

Most examples I found were around making HTTP calls to a server and went no further.

The problem I was solving was to wait for a function that received the results of an HTTP call to finish before then executing other code. That is:

main() — calls –> load() — calls –> httpRequester()

What I need is for load() to return an Observable to main() so I can schedule other code to run only once httpRequester(), and hence load(), where both finished.

After half an hour of looking at examples I figured it out, and for everyone’s benefit, I have created a simple and hopefully easy to understand example on StackBilitz.

Running Example

NOTE: You can pop the editor open in a new window by selecting “Edit On StackBlitz” in the bottom-left of the inserted window.

If you’re using Internet Explorer or there’s just a black window below, here’s the link to the code (and I suggest using a “modern” browser – Chrome and Edge both work):