温习日志-19

温习日志

——2023年2月26日下午

学习内容

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