Promise对象: 一个占位符, 暂时替代那些尚未计算出但未来会计算出的值 ;

    • 回调函数 发生错误时,无法用内置构造函数来处理。

      1. try{
      2. getJson('url',function(){
      3. // handle
      4. }
      5. }catch{e}{ // handle errors }
      • 导致这个问题的原因在于:调用回调函数的代码一般不会和开始任务中这段代码位于事件循环的同一步骤;因此 错误 经常会丢失。
    • 互相依赖 的一系列异步回调任务,会造成回调地狱,难以管理;
    • 执行多个 并行任务 很棘手

      调用 Promise构造函数 来立即调用传入的函数

      1. return new Promsie((res,rej)=>{ })
      2. // 先执行new操作,再return返回
      3. // 同时,调用Promise构造函数会立即调用传入的函数

      调用 then 方法后会再返回一个新的 Promise 对象,因此可以链式调用许多的 then 方法