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