记录async+await和promise

先上代码


首先明确一点,promise中的resolve回调一定会进then()中或者是是then的第一个回调,而reject是一定会进catch或者是then的第二个回调除开特殊情况,所以一般封装promise都是then().catch()结构。

第二点,有await的地方外部一定会带一个async,await简单点说就是等待await后面的表达式执行完再继续执行await下面的代码逻辑,也就是大家所说的可以阻塞代码的功能,如果上述代码中没有await,那么他就会先输出下面的代码,并不会等testPromise执行完毕。

第三点,就是await后面只能接promise对象才会起到阻塞代码的作用,否则就不会有用,就比如说test里await后面接的是timeOut方法,那么输出结果就会是“我没有等待”,“我等待了”,然后过了5s再输出一个“给我等待5s”

第四点,async本身就是返回一个promise对象,如果async函数中有返回值,async 通过 Promise.resolve() 将这个值封装成 promise 对象来返回,如果没有返回值就是undefined,如下所示

第五点,async+await综上所述就可以实现异步代码同步化,说明一下异步就是代码的执行顺序没有按代码书写时的顺序排列,反之就是同步

第六点,单独的promise是没有等待,所以他就是一个异步处理逻辑。简单点说promise不会去管返回结果的处理逻辑,他只会分配结果交给谁去执行,关于promise这里就不做太多介绍。

第七点,初次接触,有啥不对,可以指出,但不要喷我,喷我也不会理,我只是记录一下我自己想的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容