await outside of async function doesn't throw error in console
MDN says:
Remember, the
awaitkeyword is only valid insideasyncfunctions. If you use it outside of anasyncfunction's body, you will get aSyntaxError.
But that's not true.
Try this code in DevTools console, no errors, just result:
async function a(val) { return val; }
await a(10) // await is not inside async function
10
What's wrong with the code or docs?
javascript asynchronous async-await console
add a comment |
MDN says:
Remember, the
awaitkeyword is only valid insideasyncfunctions. If you use it outside of anasyncfunction's body, you will get aSyntaxError.
But that's not true.
Try this code in DevTools console, no errors, just result:
async function a(val) { return val; }
await a(10) // await is not inside async function
10
What's wrong with the code or docs?
javascript asynchronous async-await console
1
even just a simpleawait 10;prints 10
– quirimmo
4 hours ago
orawait Promise.resolve(10)
– Callam
4 hours ago
2
it looks like has been supported since almost one year: chromium.googlesource.com/chromium/src.git/+/…
– quirimmo
4 hours ago
1
It works on root level, but you would always write functions in program and you cant use await without making the function async
– Sumer
4 hours ago
add a comment |
MDN says:
Remember, the
awaitkeyword is only valid insideasyncfunctions. If you use it outside of anasyncfunction's body, you will get aSyntaxError.
But that's not true.
Try this code in DevTools console, no errors, just result:
async function a(val) { return val; }
await a(10) // await is not inside async function
10
What's wrong with the code or docs?
javascript asynchronous async-await console
MDN says:
Remember, the
awaitkeyword is only valid insideasyncfunctions. If you use it outside of anasyncfunction's body, you will get aSyntaxError.
But that's not true.
Try this code in DevTools console, no errors, just result:
async function a(val) { return val; }
await a(10) // await is not inside async function
10
What's wrong with the code or docs?
javascript asynchronous async-await console
javascript asynchronous async-await console
edited 1 hour ago
Bergi
362k57539863
362k57539863
asked 4 hours ago
Green
7,3573099170
7,3573099170
1
even just a simpleawait 10;prints 10
– quirimmo
4 hours ago
orawait Promise.resolve(10)
– Callam
4 hours ago
2
it looks like has been supported since almost one year: chromium.googlesource.com/chromium/src.git/+/…
– quirimmo
4 hours ago
1
It works on root level, but you would always write functions in program and you cant use await without making the function async
– Sumer
4 hours ago
add a comment |
1
even just a simpleawait 10;prints 10
– quirimmo
4 hours ago
orawait Promise.resolve(10)
– Callam
4 hours ago
2
it looks like has been supported since almost one year: chromium.googlesource.com/chromium/src.git/+/…
– quirimmo
4 hours ago
1
It works on root level, but you would always write functions in program and you cant use await without making the function async
– Sumer
4 hours ago
1
1
even just a simple
await 10; prints 10– quirimmo
4 hours ago
even just a simple
await 10; prints 10– quirimmo
4 hours ago
or
await Promise.resolve(10)– Callam
4 hours ago
or
await Promise.resolve(10)– Callam
4 hours ago
2
2
it looks like has been supported since almost one year: chromium.googlesource.com/chromium/src.git/+/…
– quirimmo
4 hours ago
it looks like has been supported since almost one year: chromium.googlesource.com/chromium/src.git/+/…
– quirimmo
4 hours ago
1
1
It works on root level, but you would always write functions in program and you cant use await without making the function async
– Sumer
4 hours ago
It works on root level, but you would always write functions in program and you cant use await without making the function async
– Sumer
4 hours ago
add a comment |
2 Answers
2
active
oldest
votes
It looks like it has been supported since 11/08/2017:
https://chromium.googlesource.com/chromium/src.git/+/e8111c396fef38da6654093433b4be93bed01dce
If you spy the
ConsoleModel.js
at line 129, they have the function for evaluating expressions marked as async:
async evaluateCommandInConsole
1
Nice detective work.
– cgTag
4 hours ago
add a comment |
Nothing is wrong.
You've found a special feature of the DevTools console! It is there to make it as easy as possible to experiment with async-await code in a live environment. You can imagine that any code you enter in the console is wrapped in an async function automatically. In fact, as another answer pointed out, this is exactly what happens.
It's important to note that even though this works in the console, it is not a feature of JavaScript.
So, all of your observations are correct and expected! The MDN docs are accurate, because if you try to load a script on a page that uses await outside of an async function, it will error. On the other hand the DevTools console is designed to make this work (exclusively for developer ergonomics), so your code runs without any errors in the console.
This isn't the only trick the DevTools console has up its sleeve. In general if you really want to test how some code runs on a page, it's best to actually run the script on the page, not in the console.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53905660%2fawait-outside-of-async-function-doesnt-throw-error-in-console%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
It looks like it has been supported since 11/08/2017:
https://chromium.googlesource.com/chromium/src.git/+/e8111c396fef38da6654093433b4be93bed01dce
If you spy the
ConsoleModel.js
at line 129, they have the function for evaluating expressions marked as async:
async evaluateCommandInConsole
1
Nice detective work.
– cgTag
4 hours ago
add a comment |
It looks like it has been supported since 11/08/2017:
https://chromium.googlesource.com/chromium/src.git/+/e8111c396fef38da6654093433b4be93bed01dce
If you spy the
ConsoleModel.js
at line 129, they have the function for evaluating expressions marked as async:
async evaluateCommandInConsole
1
Nice detective work.
– cgTag
4 hours ago
add a comment |
It looks like it has been supported since 11/08/2017:
https://chromium.googlesource.com/chromium/src.git/+/e8111c396fef38da6654093433b4be93bed01dce
If you spy the
ConsoleModel.js
at line 129, they have the function for evaluating expressions marked as async:
async evaluateCommandInConsole
It looks like it has been supported since 11/08/2017:
https://chromium.googlesource.com/chromium/src.git/+/e8111c396fef38da6654093433b4be93bed01dce
If you spy the
ConsoleModel.js
at line 129, they have the function for evaluating expressions marked as async:
async evaluateCommandInConsole
edited 4 hours ago
answered 4 hours ago
quirimmo
5,08611028
5,08611028
1
Nice detective work.
– cgTag
4 hours ago
add a comment |
1
Nice detective work.
– cgTag
4 hours ago
1
1
Nice detective work.
– cgTag
4 hours ago
Nice detective work.
– cgTag
4 hours ago
add a comment |
Nothing is wrong.
You've found a special feature of the DevTools console! It is there to make it as easy as possible to experiment with async-await code in a live environment. You can imagine that any code you enter in the console is wrapped in an async function automatically. In fact, as another answer pointed out, this is exactly what happens.
It's important to note that even though this works in the console, it is not a feature of JavaScript.
So, all of your observations are correct and expected! The MDN docs are accurate, because if you try to load a script on a page that uses await outside of an async function, it will error. On the other hand the DevTools console is designed to make this work (exclusively for developer ergonomics), so your code runs without any errors in the console.
This isn't the only trick the DevTools console has up its sleeve. In general if you really want to test how some code runs on a page, it's best to actually run the script on the page, not in the console.
add a comment |
Nothing is wrong.
You've found a special feature of the DevTools console! It is there to make it as easy as possible to experiment with async-await code in a live environment. You can imagine that any code you enter in the console is wrapped in an async function automatically. In fact, as another answer pointed out, this is exactly what happens.
It's important to note that even though this works in the console, it is not a feature of JavaScript.
So, all of your observations are correct and expected! The MDN docs are accurate, because if you try to load a script on a page that uses await outside of an async function, it will error. On the other hand the DevTools console is designed to make this work (exclusively for developer ergonomics), so your code runs without any errors in the console.
This isn't the only trick the DevTools console has up its sleeve. In general if you really want to test how some code runs on a page, it's best to actually run the script on the page, not in the console.
add a comment |
Nothing is wrong.
You've found a special feature of the DevTools console! It is there to make it as easy as possible to experiment with async-await code in a live environment. You can imagine that any code you enter in the console is wrapped in an async function automatically. In fact, as another answer pointed out, this is exactly what happens.
It's important to note that even though this works in the console, it is not a feature of JavaScript.
So, all of your observations are correct and expected! The MDN docs are accurate, because if you try to load a script on a page that uses await outside of an async function, it will error. On the other hand the DevTools console is designed to make this work (exclusively for developer ergonomics), so your code runs without any errors in the console.
This isn't the only trick the DevTools console has up its sleeve. In general if you really want to test how some code runs on a page, it's best to actually run the script on the page, not in the console.
Nothing is wrong.
You've found a special feature of the DevTools console! It is there to make it as easy as possible to experiment with async-await code in a live environment. You can imagine that any code you enter in the console is wrapped in an async function automatically. In fact, as another answer pointed out, this is exactly what happens.
It's important to note that even though this works in the console, it is not a feature of JavaScript.
So, all of your observations are correct and expected! The MDN docs are accurate, because if you try to load a script on a page that uses await outside of an async function, it will error. On the other hand the DevTools console is designed to make this work (exclusively for developer ergonomics), so your code runs without any errors in the console.
This isn't the only trick the DevTools console has up its sleeve. In general if you really want to test how some code runs on a page, it's best to actually run the script on the page, not in the console.
edited 1 min ago
Bergi
362k57539863
362k57539863
answered 12 mins ago
Caleb Miller
2307
2307
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53905660%2fawait-outside-of-async-function-doesnt-throw-error-in-console%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
even just a simple
await 10;prints 10– quirimmo
4 hours ago
or
await Promise.resolve(10)– Callam
4 hours ago
2
it looks like has been supported since almost one year: chromium.googlesource.com/chromium/src.git/+/…
– quirimmo
4 hours ago
1
It works on root level, but you would always write functions in program and you cant use await without making the function async
– Sumer
4 hours ago