温习日志
——2023年2月26日下午
学习内容
- The Event Loop in Practice
- 在JS引擎中,会首先执行调用栈中的代码
- 对于回调函数会存入回调队列中,在调用栈中的代码全部执行完毕,Event Loop会开始执行回调队列中的代码
- 对于
Promise会存入特殊的微任务队列中,会优先与回调队列开始调用
- 通过这些规定JS实现单线程的非阻塞异步调用
- Building a Simple Promise
- 通过
new Promise创建Promise对象
Promise接受一个函数作为参数,这个函数有两个函数作为参数,分别是resolve和reject
- 可以通过
Promise.resolve()或者Promise.reject()直接实现成功或失败,会返回Promise对象,可以进行链式写法
- Promisifying the Geolocation API
navigator.geolocation.getCurrentPosition()接受两个函数,一个成功的回调函数、一个失败的回调函数
- 在
Promise对象中,对于navigator.geolocation.getCurrentPosition()的两个函数可以直接使用resolve和reject
- 练习2,详见于代码中
- Consuming Promises with Async_Await
- 对于
Promise的then方法,也可以用await方法而实现在获取到数据后处理数据
await必须在函数中,且函数前缀要添加async的前缀才能使用
- Error Handling with try...catch
- 对于
await关键字,不会进行catch捕获
- 可以将获取的代码写入
try {} catch(err) {}中,在错误时进行处理
- Promise 方法
Promise.all()方法接受一个数组作为参数,其中都是请求,会将所有的数据请求成功后返回处理后的数组,但是如果其中一个出现错误就会报错
Promise.race()方法接受一个数组作为参数,其中都是请求,会在第一个处理完直接返回结果
Promise.allSettled()方法接受一个数组作为参数,其中都是请求,会将所有的数据请求成功后返回处理后的数组,如果其中出现错误也不会影响
Promise.any()方法接受一个数组作为参数,其中都是请求,会在第一个处理完直接返回结果,即使是第一个是失败的,也会返回
- 练习3,详见于代码中
posted @
2023-02-26 18:41
这样那样如此如此
阅读(
16)
评论()
收藏
举报