当前位置: 首页 > Web前端 > HTML

我对异步的理解

时间:2023-03-28 15:22:52 HTML

1.什么是异步?例如:读取文件ajax请求定时任务setTimeout等。Promise将异步任务封装成对象,通过then将异步完成后要执行的函数交给resolve调用。封装Promise是因为我有异步任务要处理,比如请求一个定时任务,而我需要在这些任务之后做一些没有地狱回调的事情,所以我用Promise来封装returnnewPromise((resolve,reject)=>{try(){resolve()}catch(){reject()}})2.Promise函数:1.避免地狱回调,支持链式调用2.捕获错误(通过报错/通过reject())resolve:改变异步taskfrompendingrequesttoresolvesuccessfulreturnreject:fromrequestChangetofailurepending:对于request中的chaincalls,catch是针对整个chain捕获错误。链写方式的错误处理具有“冒泡”的特点。如果链中的任何一个环节出现问题,都会被捕获,而不会执行某个环节后面的代码。最后)抓到之后,如果有then,就继续往下并行执行:Promise.allasync/await的出现就是为了解决多个.then的链式回调,写法比较优雅.当需要捕获异步任务的异常时,用trycatch异步返回,用await声明的Promise,必须等到有返回值。(注意setTimeout不是Promise异步,而是普通的异步)finally方法用于指定无论Promise对象的最终状态如何都会执行的操作