To get return value from setTimeout with JavaScript, we can create a promise from the setTimeout
code.
For instance, we write
const x = () => {
const promise = new Promise((resolve, reject) => {
window.setTimeout(() => {
resolve("done!");
});
});
return promise;
};
const y = async () => {
const result = await x();
console.log(result);
};
to define function x
that returns a promise created with the Promise
constructor.
We call it with a callback that calls setTimeout
with a callback that calls resolve
to return the resolve value of the promise.
Then we return the promise.
Next, we define function y
that calls x
and gets the resolved value with await
.
Therefore, result
is 'done!'
.