promise

98 阅读1分钟

常见的内置错误

  1. ReferenceError 引用的变量不存在
  2. TypeError 数据类型不正确的错误
  3. RangeError 数据值不在其所允许的范围内
  4. SyntaxError 语法错误

错误处理

  1. 捕获错误 try...catch
try{
    
} catch(error){
    // error 有message和stack属性
    messgae: 错误相关信息
    stack:函数调用栈记录信息
}

function getTime(){
      if(Date.now()%2===1){
        console.log('这是奇数')
      }else{
        throw new Error('这是个错误, 现在是偶数')
      }
    }

    try{
      getTime()
    } catch(error){
      console.log(error.message)  //这是个错误, 现在是偶数
      console.log(error.stack) 
      // Error: 这是个错误,现在是偶数
      // at getTime (error.html:14)
      // at error.html:19
    }
  1. 抛出错误 throw error

promise

promise是js中进行异步编程的新的解决方案 旧的解决异步编程的方案是纯回调函数

  • Promise是一个构造函数
  • promise对象用来封装一个异步操作并可以获取其结果

promise的状态改变

  1. pending变为resolved
  2. pending变为rejected
  • 只有这2种,且一个promise对象只能改变一次,无论变为成功还是失败,都会有一个结果数据 成功的结果数据一般称为value,失败的结果数据一般称为reason

promise的优势

  1. 指定回调函数的方式更加灵活 纯回调函数必须在启动异步任务前指定 promise:启动异步任务 => 返回promise对象 => 给promise对象绑定回调函数(甚至可以异步方式指定)
  2. 支持链式调用,可以解决回调函数地域问题 什么是回调地狱? 回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调函数执行的条件