From 3113f7deefa7d08d4fba703406240fe661627090 Mon Sep 17 00:00:00 2001 From: Ilya Kantor Date: Thu, 7 Mar 2019 15:14:56 +0300 Subject: [PATCH] up --- .../solution.md | 0 .../task.md | 0 .../03-async-from-regular/solution.md | 20 +++++++++++++++++++ .../03-async-from-regular/task.md | 20 +++++++++++++++++++ 4 files changed, 40 insertions(+) rename 1-js/11-async/07-async-await/{01-rewrite-async-2 => 02-rewrite-async-2}/solution.md (100%) rename 1-js/11-async/07-async-await/{01-rewrite-async-2 => 02-rewrite-async-2}/task.md (100%) create mode 100644 1-js/11-async/07-async-await/03-async-from-regular/solution.md create mode 100644 1-js/11-async/07-async-await/03-async-from-regular/task.md diff --git a/1-js/11-async/07-async-await/01-rewrite-async-2/solution.md b/1-js/11-async/07-async-await/02-rewrite-async-2/solution.md similarity index 100% rename from 1-js/11-async/07-async-await/01-rewrite-async-2/solution.md rename to 1-js/11-async/07-async-await/02-rewrite-async-2/solution.md diff --git a/1-js/11-async/07-async-await/01-rewrite-async-2/task.md b/1-js/11-async/07-async-await/02-rewrite-async-2/task.md similarity index 100% rename from 1-js/11-async/07-async-await/01-rewrite-async-2/task.md rename to 1-js/11-async/07-async-await/02-rewrite-async-2/task.md diff --git a/1-js/11-async/07-async-await/03-async-from-regular/solution.md b/1-js/11-async/07-async-await/03-async-from-regular/solution.md new file mode 100644 index 00000000..7e2ab597 --- /dev/null +++ b/1-js/11-async/07-async-await/03-async-from-regular/solution.md @@ -0,0 +1,20 @@ + +That's the case when knowing how it works inside is helpful. + +Just treat `async` call as promise and attach `.then` to it: +```js run +async function wait() { + await new Promise(resolve => setTimeout(resolve, 1000)); + + return 10; +} + +function f() { + // shows 10 after 1 second +*!* + wait().then(result => alert(result)); +*/!* +} + +f(); +``` diff --git a/1-js/11-async/07-async-await/03-async-from-regular/task.md b/1-js/11-async/07-async-await/03-async-from-regular/task.md new file mode 100644 index 00000000..18d0e2ce --- /dev/null +++ b/1-js/11-async/07-async-await/03-async-from-regular/task.md @@ -0,0 +1,20 @@ + +# Call async from non-async + +We have a "regular" function. How to call `async` from it and use its result? + +```js +async function wait() { + await new Promise(resolve => setTimeout(resolve, 1000)); + + return 10; +} + +function f() { + // ...what to write here? + // we need to call async wait() and wait to get 10 + // remember, we can't use "await" +} +``` + +P.S. The task is technically very simple, but the question is quite common for developers new to async/await.