ajax day02
文件预览与文件上传:
文件上传:给file表单注册一个change事件
1.获取文件数据 this.files[0]
2.使用formdata处理文件
(1)const fd = new FormData()
(2)使用formdata处理文件
const fd = new FormData()
fd.append('参数名',参数值)
a.修改请求头为文件格式
b.把file对象转成二进制
3.发送ajax请求,参数就是fd
4.服务器响应图片网址,赋值给img标签src属性
扩展/回顾:
1、java中list集合中contains()的用法为:
public boolean list.contains(Object )
意思为:当前列表若包含某元素,返回结果为true, 若不包含该元素,返回结果为false。
ajax day03
promise作用:
解决回调地狱
回调地狱:
异步函数,层层嵌套
promise语法:
1.创建promise实例对象
2.调用promise实例的then方法
异步:定时器 点击事件
promise原理:
1.promise对象的三个状态:
a.pending(进行中)
b.fulfilled(已成功)
c.rejected(已失败)
2.promise对象的状态改变,只有两种可能:
a.resolve():pending变成fulfilled
b.执行 reject():从pending变成rejected
3.promise在创建实例的时候,里面的代码会立即执行,promise自己是同步的,只有then方法才是异步的
链式:一级一级往下找
链式调用:再上一个then里面,返回下一个promise实例,就可以继续在后面then
promise其他方法:
promise.all():将多个promise合并成一个,等待所有promise全部执行完毕才会执行then
相当于逻辑与: 全真为真,一假则假
promise.race():将多个promise合并成一个,任意一个promise执行完毕就执行then
相当于逻辑或:一真则真,全假为假
async异步函数语法:
- async 函数(){
- const res = await promise对象
- }
async关键字作用:
修饰函数,让函数内部可以使用await关键字
await关键字作用:
取代then方法 并 获取then的结果
注意点:await只能用于被async修饰的函数,否则程序会报错
以前使用axios:
axios底层原理:promise+XMLHttpRquest
1.axios方法本质是返回一个promise对象
2.promise内部是原生XHR发送Ajax请求
3.请求成功用resolve返回给promise对象结果给外面then
async必须在函数前面,await必须在函数内部使用,替代then,和then的结果
面试题try-catch:
1.error()对象:内置对象,错误信息
2.throw关键字:抛出异常,可以让控制台变红.throw错误信息
3.try-catch语法:捕捉错误
- try{
- 代码块:能执行就正常执行,遇到错误就会执行catch
- }catch(error){
- 如果try的代码遇到错误,或者遇到错误就会执行catch
- }finally{
- 无论代码执行成功还是失败,最终都会执行
- }
4.try-catch应用场景:
结束forEach循环(面试题)
捕捉await的错误信息
补充:递归1-100累加和代码
- const fn = n=>n===1?n:n+fn(n-1)
- fn(100)