promise核心技术 2.两种回调函数 js中error的处理

抽空详细学习一下什么是回调函数(一个回调函数,也被称为高阶函数)

1.什么样的函数是回调函数

  • 自己定义的(sittimeout不是自己定义的)
  • 没有调用
  • 自己执行

1.同步回调与异步回调函数

同步回调函数

const arr = [1, 2, 3]
arr.forEach(item => {
  console.log(item)
}) //同步回调,任务启动后(等待完成),直接执行回调函数,再往下执行

console.log("later")

异步回调函数

setTimeout(() => {
  console.log(‘callback()‘)
},0) // 任务启动后,代码往下执行,任务放入队列,下面代码执行完,再执行队列任务
console.log("later")

2.JS中 error处理

1.错误的类型

  • Error:所有错误的父类型
  • ReferenceError 引用变量不存在
  • TypeError 数据类型不正确
  • RangeError 数值不在允许的范围内
  • SyntaxError 语法错误

出了错误不处理 程序不会向下执行(错误被捕获后就程序就会向下执行)

2.错误的处理

捕获错误 try catch(原生程序抛出错误)

  try {
    let d
    console.log(d.xxx)
  } catch (error) {
    console.log(error)
  } // error对象中有两个属性 massege和stack

抛出错误:throw error  + 捕获

  function proxy() {
    if (Date.now()%2 === 1) {
      console.log("ok")
    } else {
      throw new Error(‘这是错误信息提示文本error.massage‘) //内部抛出错误用具体的 我们抛出用这个
    }
  }
 try {
   proxy()
 } catch (error){
    console.log(error.message)
 }

3

原文地址:https://www.cnblogs.com/-constructor/p/12216104.html

时间: 2024-08-10 23:29:57

promise核心技术 2.两种回调函数 js中error的处理的相关文章

js两种定义函数、继承方式及区别

一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function() { alert("i am B"); } 区别:code 前者会在代码执行之前提前加载到作用域中,后者则是在代码执行到那一行的时候才会有定义 二:js两种继承方式及区别 对象冒充 临时属性 call() apply() 原型链 code 继承应选哪种 code 三:实例 js两种定义

javascript两种声明函数的方式的一次深入解析

声明函数的方式 javascript有两种声明函数的方式,一个是函数表达式定义函数,也就是我们说的匿名函数方式,一个是函数语句定义函数,下面看代码: /*方式一*/ var FUNCTION_NAME = function() { /* FUNCTION_BODY */}; /*方式二*/ function FUNCTION_NAME () { /* FUNCTION_BODY */}; 区别一 方式一的声明方式是先声明后使用 方式二的声明方式可以先调用,后声明 /*方式一: *先声明后使用 *

百度地图 在加载过程中,根据回调函数结果中第一个点设置为中心点

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script&g

js callback promise async await 几种异步函数处理方式

***callback  这个是最常用的也是最简单的 ,比如在ajax网络请求中,返回请求完成返回的数据 回调函数就是把一个函数当成另一个函数的参数,可以传递函数内的局部变量,也可以异步完成一些操作,在函数的实现里调用回调函数,在函数的调用里实现回调函数 // 回調函數的方式 閉包 可以獲取函數內部的局部變量 function testCallback(callback) { let a = 1; let b = 2; if (a < b) { callback && callbac

JS里面的两种运动函数

最新学了一个新的运动函数,与最初学习的有所不同,第一个运动是根据运动速度完成运动 ,第二个则是根据运动的时间来完成运动,而且把之前的函数都进行了一些兼容处理,在这里列出了看一下: 第一种animate1 1 function animate1(obj,data,rate,fn){//运动对象,运动数据,[运动速度],[回调函数] 2 //遍历获取样式属性 3 for(var key in data){ 4 //通过闭包将key私有化 5 (function(k){ 6 /* 7 获得样式宽高等会

JS两种声明函数的方法以及调用顺序

两种声明方法: 1. var a = function () {...}; 2. function a() {...}; 第一种方式必须先声明后调用,而第二种方式函数调用在声明之前之后都可以. //第一种方式 //a();这样调用会出错 var a = function () { alert("A"); } a();//A //第二种方式 b();//B function b() { alert("B"); } b();//B

javascript中两种定义函数方式的差别以及函数的预编译效果

我们知道在javascript中定义函数的方式有以下两种: function mm(){ } 这种形式是声明一个函数,跟 var 声明一个变量机制一样,脚本在解释执行之前会做预编译处理. var mm = function(){ } 这种形式是对一个变量赋值,虽然也做预编译,但仅仅只是给 mm 事先变量分配一个内存空间,而没有做初始化. 代码1: alert(a);//打印函数a的内存 alert(b);//undefined alert(c);//JS报错:"c"未定义 functi

JS的三种使用方式/CSS的三种使用方式/JS中的DOM事件模型/JS中匿名函数的书写及调用/媒体查询@media的三种使用方式

一.JS的三种使用方式 1.html标签中内嵌JS(不提倡使用.)                <button onclick="javascript:alert('你真点啊.')" > 有本事点我呀!!!!</button>                                2.HTML页面中直接使用JS:                <script type="text/javascript">        

两种open()函数

C语言中文件操作函数中,open()有两种形式: 一种形式是有两个参数open2: 另一种形式是有三个参数open3: 共有的参数有两个,第一个是"被打开文件的路径",第二个是"文件打开的方式": 在使用中,如果文件打开的方式中使用了O_CREAT,则使用带有三个参数的open(),第三个参数是"被打开文件的存取权限":