• Promise


    前提准备:

     1. 区别实例对象和函数对象

    1 Function Fn(){}; 大写的默认是构造函数。 

    const fn = new Fn(); 加new调用,Fn被称为:构造函数。fn被称为:实例对象(对象)

    括号左边是函数。点的左边是对象。

    2 Fn.call(); Fn是函数对象

    $('#test')  jq实例函数。

    $.get('/test');jq函数对象。

    a.b.c()。 a()[0]()。括号左边肯定是个函数。[]中括号左边就是数组。

    2. 两种类型的回调函数。

    回调函数定义:

    1 是我定义(setTimeout就不是)。2 我没有调。函数+()就是执行。3会执行。

    2.同步回调:

      arr.forEach( item => { console.log(item)} )

      console.log(arr)

       =>{}同步回调函数。

    3.异步回调:

      setTimeout( () =>{console.log('')},0) 

      console.log('1');

      =>{}异步回调函数,放在队列中来执行

    3. JS的error处理

    1.错误类型: Error:所有错误的父类型

      1. ReferenceError:引用的变量不存在。reference引用。console.log(a)

      2.TypeError:数据类型不正确的错误。 consloe.log(undefine.xxx);cannot read property 'xx' of undefind; 不能读取underlifin的属性xx。

      3.RangeError:function fn(){};递归调用。会产生死循环。Max

      4.Syntax 语法错误。

    2.

    捕获错误:try catch 

    抛出错误:throw error。系统通知的方式。

    2.错误处理

    3.错误对象

    二。promise使用

    1抽象理解: promise是什么JS异步编程的解决方法(之前的方案是什么呢?)

    2 具体表达:语法上promise是一个构造函数。功能上:promise对象可以封装一个异步操作,并且异步操作的获取结果。

    2+2+1 

    2 个问题超过面试官的准备。2 个和其他人差不多。1 个啥也不知道。

    只有这两种,且一个promise对象只能改变一次。

    无论成功还是失败,都会有一个结果数据。

    成功的结果成为:value,失败的结果成为reason(原因)。 

    Promise(pedding状态)-》执行异步操作-》成功了,执行resolve()函数,-》promise对象(resolved)-》then(回调onResolved)      -》新的primise

                        -》失败了,执行reject()函数       -》promise对象(rejected)-》then,catch(回调onRejected())     -》新的primise.

    1 new Promise()本身就是构造函数,但是里面必须传入一个执行器函数,执行器函数用来执行异步操作,这就是设计promise初衷。

    2 然后执行异步操作。

    3 如果成功调用resolve(),如果失败调用reject()。

    4 then去做回调!!!

    p.then(

    value=>{接受得到成功的数据,不是主动的取,},//

    reason=>{接受得到失败的数据}

    )

    2 为什么

    3 如何用

    讲课:学习任何技术需要成为,在学习之前要想清楚为什么。如果是因为面试和工作,那么必须强迫自己记忆。

    语法:

    4步:

    3状态:pedding,res,rej

    2方法。 成功res,失败rej。。

    1异步。setTimeout 

    0构造器。()=>{ }。

    1各构造器。

    2 各参数。

    3 一个异步函数+2个方法。

    4.then回调。

    1 promise优势特点。2 primise使用。做题。3 promise特殊问题 4 promise源码 

  • 相关阅读:
    node异步转同步(循环)
    三级省市区PCASClass.js插件
    微信公众号基础总结(待更新)
    ES6详解
    webpack配置
    高性能 CSS3 动画
    github上传口令
    纯css3 实现3D轮播图
    优美的js代码,拿去玩~
    关于列举属性用点还是用【】
  • 原文地址:https://www.cnblogs.com/hacker-caomei/p/15073303.html
Copyright © 2020-2023  润新知