Promise预备


区别实例对象和函数对象

  • 函数对象:将函数作为对象使用时,简称为函数对象
  • 实例对象:new 函数产生的对象,简称为对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//括号的左边是函数,点号的左边是对象
//所有函数都是Function的实例对象
function Fn(){//这里Fn是函数

}
const fn = new Fn();//这里fn是实例对象(简称对象),Fn是构造函数
console.log(Fn.prototype);//这里Fn是函数对象
Fn.call({});//Fn是函数对象
Fn.bind({});//函数对象才有bind方法,
$('#test');//$是jQuery函数
$.get('/test');//$是jQuery函数对象

function Person(params){

}

两种类型的回调函数

同步回调

  • 理解:立即执行,完全执行完了才结束,不会放入回调队列中
  • 例子:数组遍历相关的回调函数/Promise 的 excutor 函数
1
2
3
4
5
6
7
8
9
10
11
const arr = [1,2,3];
//遍历回调,同步回调函数(只有回调完成,才会执行后面),不会放入回调队列,一上来就执行
arr.forEach(item=>{
console.log(item);
});
console.log('forEach之后执行');
结果:
1
2
3
forEach之后执行

异步回调:

  • 理解:不会立即执行,会放入回调队列中将来执行
  • 例子:定时器回调/ajax 回调/Promise 的成功|失败的回调
1
2
3
4
5
6
7
8
//异步回调函数,会放入队列中将来执行,先执行启动任务,只是启动,处理需要时间
setTimeout(() => {//异步 回调函数,会放入队列中将来执行
console.log('timeout callback');
}, 0);
console.log('setTimeout()之后');
result:
setTimeout()之后
timeout callback

JS 的 error 处理

目标:进一步理解 JS 中的错误(Error)和错误处理

  1. 常见错误类型
  • Error:所有错误的父类型
  • ReferenceError:引用的变量不存在
  • TypeError:数据类型不正确
  • RangeError:数据值不在其所允许的范围内(如:递归调用超出范围)
  • SyntaxError:语法错误
  1. 错误处理
  • 捕获错误:try…catch
  • 抛出错误:throw error

未捕获错误,下面的代码不会执行

  1. 错误对象
  • message 属性:错误相关信息
  • stack 属性:函数调用栈记录信息

文章作者: AlfaLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AlfaLee !
  目录