await和async

1.async

    async定义的函数,返回一个promise对象。如果你在async定义的函数里返回一个直接量,那么async会把该直接量用promise封装起来,通过resolve输出。所以要访问async返回的结果的时候,使用.then访问

demo1

没有返回值的情况下async函数会返回Promise.resolve(undefined)。而且promise的特点是无等待,执行async,会立即执行。

2.await

await要在async里面调用,await在等待表达式,表达式的计算结果可以是promise对象或者其他的值,但是await必须要等到一个值,虽然它可以接受promise,但是他还是要promise resolve的结果才行,才算完成了自己的任务啊。

    如果await等到的是一个promise,这下好了,await可霸道了,我下面的代码都不许动,我上面已经动完的就算了,我下面的不许动,等我的promise resolve了,await拿到自己想要的值了,他下面的代码才能继续执行。也就是说,在promise resolve之前,await会阻塞它后面的代码。直到promise resolve了一个值,才会释放,继续执行下面的代码。so: await一定要在async里面调用,不然真的阻塞代码,就完啦!!!

    这么理解好一些,就像一个树根,一个async函数就是一个分支,他不会影响主根的生长,即使await阻塞了一个分支的代码,但不会影响主根的生长。

3.作用

    两个关键字的优势在于处理then链,唉...,就是promise的优势。我不想举例子了。。。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容