It seems logical an asynchronous action must be executed in a different thread. That is to say, no asynchronous action can't be created without involving multi-threading. After all, if it's not executing in a different thread, it would block the main thread and therefore it wouldn't be asynchronous anymore.
However, they told me that asynchronous doesn't necessarily mean involving additional threads. If I recall correctly, they told it was true at least for javascript.
So my question is: does asynchronous operation have to execute in a different (not main) thread always and can asynchronous computation exist without multi-threading (a separate thread for it)?