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

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 引用变量不存在   // a = ''' b
  • TypeError 数据类型不正确           // b = []  b.XXX
  • RangeError 数值不在允许的范围内  //递归
  • SyntaxError 语法错误                  // var a =""""

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

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

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

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

    一:js两种定义函数的方式及区别 1:函数声明: function sayA() { alert("i am A"); } 2:函数表达式: var sayB = function ...

  2. [教程]Delphi 中三种回调函数形式解析

    Delphi 支持三种形式的回调函数 全局函数这种方式几乎是所有的语言都支持的,类的静态函数也可以归为此类,它保存的只是一个函数的代码起始地址指针( Pointer ).在 Delphi 中声明一般为 ...

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

    声明函数的方式 javascript有两种声明函数的方式,一个是函数表达式定义函数,也就是我们说的匿名函数方式,一个是函数语句定义函数,下面看代码: /*方式一*/ var FUNCTION_NAME ...

  4. 两种const函数

    有两种const函数,声明如下:1.const T func();2.T func() const;第一种表示返回的是const的类型,也即返回的值不能作为左值,楼主懂的.第二种表示该成员函数不能修改 ...

  5. 两种方法使用js读写cookie实现一个底部广告浮层效果

    下面一个案例实现了js实现一个页面浮层并且使用两种方法使用js读写cookie:来实现用户关闭广告的显示状态: 读者可以将下面代码复制到一个html文件试试效果:html的pre标签未两种js实现的方 ...

  6. 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。

    子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...

  7. JS里面的两种运动函数

    最新学了一个新的运动函数,与最初学习的有所不同,第一个运动是根据运动速度完成运动 ,第二个则是根据运动的时间来完成运动,而且把之前的函数都进行了一些兼容处理,在这里列出了看一下: 第一种animate ...

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

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

  9. 两种open()函数

    C语言中文件操作函数中,open()有两种形式: 一种形式是有两个参数open2: 另一种形式是有三个参数open3: 共有的参数有两个,第一个是"被打开文件的路径",第二个是&q ...

随机推荐

  1. SQL*Loader-128: SQL*Loader-523

    错误原因: SQL*Loader-128: unable to begin a sessionORA-01017: invalid username/password; logon denied 解决 ...

  2. 把自己的项目发布到maven仓库并在maven和gradle中开始使用

    把自己的项目发布到maven仓库并在maven和gradle中开始使用 上一条博客中提到的日志打印项目总算是维护的差不多了, 不过现在使用它还是打成jar包放到其他项目内, 所以决定把项目传到mave ...

  3. NIO 聊天室代码实现

    服务器端 package com.ronnie.nio.groupChat; import java.io.IOException; import java.net.InetSocketAddress ...

  4. 安装phpmyadmin数据可视化

    1.下载压缩包,并且解压 cd /usr/local/src wget https://files.phpmyadmin.net/phpMyAdmin/4.9.4/phpMyAdmin-4.9.4-a ...

  5. Result Maps collection already contains value for com.xxx.x.dao.xxxMapper.Bas

    springboot启动时候,报错如下: Result Maps collection already contains value for com.xxx.xx.dao.xxxxxMapper.Ba ...

  6. 7 —— node —— 响应图片

      const http = require('http'); const fs = require('fs'); const server = http.createServer(); server ...

  7. 九十四、SAP中ALV事件之八,显示功能按钮栏

    一.我们把其他代码都注释掉,直接写一行调用 SET PF-STATUS 'TIANPAN_TOOLS'. 二.运行程序,会看到我们上一篇所添加的相关功能栏图标, 三.点击不同图标,会按程序代码,有不同 ...

  8. 149-PHP大小写转换函数

    <?php $str='PHP is a very good programming language.'; //定义一个字符串 echo "未经处理的字符串:<br /> ...

  9. 060-PHP函数定义和调用

    <?php function add($x,$y){ //定义函数add return $x+$y; } echo add(15,6); //调用函数并输出结果 ?>

  10. 第二阶段scrum-8

    1.整个团队的任务量: 2.任务看板: 会议照片: 产品状态: 消息收发制作中