2022.7.14工作日报:
【今日完成】
1、修改机构组件使用
2、科室列表静态界面
3、学习es6剩余部分对象新增方法、promise、async、await、模块
【明日计划】
1、科室列表
2、修改机构新增页面
3、学习剩余对象
【心得体会】
1.注意useState的参数的使用,当参数变化时,才会调用函数。注意开发时牢记讲es6的内容应用到实际项目中!
2、对象新增方法:Object.fromEntries()
方法(是Object.entries()
的逆操作,用于将一个键值对数组转为对象,适合将 Map 结构转为对象;配合URLSearchParams
对象,将查询字符串转为对象)、Object.hasOwn()(判断是否为自身的属性,接受两个参数,一个是所要判断的对象,第二个是属性名,不继承Object.prototype
的对象不会报错,hasOwnProperty()
是会报错的)
3.Promise(异步编程的一种解决方案,保存着某个未来才会结束的事件,是一个对象,获取异步操作的消息,提供统一的 API,各种异步操作都可以用同样的方法进行处理。特点:对象的状态不受外界影响;一旦状态改变,就不会再变。基本用法:Promise
对象是一个构造函数,用来生成Promise
实例,Promise
构造函数接受一个函数作为参数,该函数的两个参数分别是resolve
和reject。resolve
函数的作用是从 pending 变为 resolved,reject函数的作用时从 pending 变为 rejected。Promise
实例生成以后,可以用then
方法分别指定resolved
状态和rejected
状态的回调函数)、Promise.prototype.then(Promise的then
方法是定义在原型对象Promise.prototype
上的,then
方法的第一个参数是resolved
状态的回调函数,第二个参数是rejected
状态的回调函数。then
方法返回的是一个新的Promise
实例,可以采用链式写法,then
方法后面再调用另一个then
方法。Promise.prototype.catch(.then(null, rejection)
或.then(undefined, rejection)
的别名,用于指定发生错误时的回调函数)、Promise.prototype.finally(不管 Promise 对象最后状态如何,都会执行,总是会返回原来的值)、Promise.all(
用于将多个 Promise 实例,包装成一个新的 Promise 实例,数组作为参数,只有参数的状态都变成fulfilled
,Promise
的状态才会变成fulfilled;
只要参数之中有一个被rejected,值为
第一个被reject的值)
、Promise.race(
方法同样是将多个 Promise 实例,包装成一个新的 Promise 实例,与Promise.all()一样,
不是 Promise 实例,调用Promise.resolve()
方法,将参数转为 Promise 实例,再进一步处理,指定时间内没有获得结果,就将 Promise 的状态变为reject
,否则变为resolve)、
Promise.allSettled(确定一组异步操作是否都结束了(不管成功或失败),Settled,包含了fulfilled和rejected两种情况,数组作为参数,所有 Promise 对象都发生状态变更,Promise 对象才会发生状态变更)、,Promise.any(一组 Promise 实例作为参数,包装新的 Promise 实例,有一个变成fulfilled
,包装实例就为fulfilled
状态;所有变为rejected,实例就是reject)、Promise.resolve(
对象转为 Promise 对象,参数为Promise实例:Promise.resolve不做任何修改;参数是thenable对象;参数不是具有then()
方法的对象,或根本就不是对象;不带有任何参数)、Promise.reject(reason)
方法也会返回一个新的 Promise 实例,该实例的状态为rejected、应用有加载图片、与
Generator结合、Promise.try()
包装、这样有许多好处,其中一点就是可以更好地管理异常。
4、async 函数,含义(使得异步操作方便,Generator 函数的语法糖,对Generator 的改进:内置执行器;更好的语义;更广的适用性;返回值是 Promise)、基本用法(返回一个promise对象,使用then方法添加回调函数)