await前端小白初识

await
关键词await是等待的意思,那么他在等什么呢? 在MDN上写的是:
[return_value] = await expression;
复制代码
等的是一个表达式,那么表达式,能够是一个常量,变量,promise,函数等。express

function getSomething() {
    return "something";
}
async function testAsync() {
    return Promise.resolve("hello async");
}
async function test() {
    const v1 = await getSomething();
    const v2 = await testAsync();
    console.log(v1, v2);
}
test(); // something hello async

复制代码promise

  • 为何await关键词只能在async函数中用

await操做符等的是一个返回的结果,那么若是是同步的状况,那就直接返回了。
那若是是异步的状况呢,异步的状况下,await会阻塞整一个流程,直到结果返回以后,才会继续下面的代码。
阻塞代码是一个很可怕的事情,而async函数,会被包在一个promise中,异步去执行。因此await只能在async函数中使用,若是在正常程序中使用,会形成整个程序阻塞,得不偿失。异步

相关文章
相关标签/搜索