- 博客(10)
- 资源 (7)
- 收藏
- 关注
原创 温故知新(七八)如何记录前端在用户浏览器上发生的错误并汇报给服务器?
如何记录前端在用户浏览器上发生的错误并汇报给服务器?一、代码执行的错误捕获1、try……catch使用 try……catch包裹,影响代码的可读性。无法处理异步中的错误,无法处理语法错误2、window.onerror比 try catch 要强那么一丢丢。无论是异步还是非异步错误,onerror 都能捕获到运行时错误缺点:监听不到...
2020-12-31 08:59:51 335
原创 温故知新(七七)nextTick 是在本次循环执行,还是在下次,setTimeout(()=>{},0)呢
nextTick 是在本次循环执行,还是在下次,setTimeout(()=>{},0)呢nextTick 在本次循环执行,且全部执行,setTimeout 在下次循环执行由于 js 是单线程,js 设计者吧任务分为同步任务和异步任务,同步任务都在主线程上排队执行,前面任务没有执行完成,后面的任务会一直等待;异步任务则是挂在一个任务队列里,等待主线程所有任务执行完...
2020-12-28 17:25:40 458
原创 温故知新(七六)Promise.all 中任何一个 Promise 出现错误的时候都会执行 reject,导致其他正常返回的数据也无法使用。你有什么解决办法吗
Promise.all 中任何一个 Promise 出现错误的时候都会执行 reject,导致其他正常返回的数据也无法使用。你有什么解决办法吗1.在单个的 catch 中对失败的 Promise 请求做处理2.把 reject 操作换成 resolve(new Error("...")) 处理3.引入 Promise.allSettledconst promises = [ fecth...
2020-12-25 17:12:51 2238
原创 温故知新(七五)Promise.resolve(obj) obj 有几种可能
Promise.resolve(obj) obj 有几种可能Promise.resolve 方法的参数分为四种情况1.参数是一个 Promise 实例如果参数是一个 Promise 实例,那么 Promise.resolve 将不做任何修改,原封不动的返回这个实例。2.如果参数是一个 thenable 兑现thenable 对象值得是具有 then 方法...
2020-12-24 17:30:15 336
原创 温故知新(七四)Promise.allSettled 了解吗?动手实现以下 Promise.allSettled
Promise.allSettled 了解吗?动手实现以下 Promise.allSettledPromise.allSettled(iterable) 概念const resolved = Promise.resolve(42);const...
2020-12-22 17:08:53 716 3
原创 温故知新(七三)实现 Promise.all
实现 Promise.all一、核心思路1.接收一个 Promise 实例的数组或具有 Iterator 接口的对象作为参数2.这个方法返回一个新的 Promise 对象3.遍历传入的参数,用 Promise.resolve() 将参数“包裹一层”,使其变成一个 Promise 对象4.参数所有回调成功才是成功,返回值数组与参数顺序一致5.参数数组其中一个失败,则触发...
2020-12-21 09:18:15 373
原创 温故知新(七二)介绍下 Promise 的特性、优缺点,内部是如何实现的,动手实现 Promise
介绍下 Promise 的特性、优缺点,内部是如何实现的,动手实现 Promise答案:一、Promise 基本特性1. Promise 有三种状态:pending (进行中),fulfilled (已成功),rejected (已失败)2. Pro...
2020-12-18 14:40:01 931
转载 从零开始手写Promise
面试的时候经常会问到Promise的使用;有的面试官再深入一点,会继续问是否了解Promise的实现方式,或者有没有阅读过Promise的源码;今天我们就来看一下,Promise在内部是如何实现来链式调用的。什么是Promise所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise提供统一的API,各种异步操作都可以用同样的方法进行处理。Promise出现之前都是通过
2020-12-16 16:30:09 231
原创 mediainfo.js获取视频详细信息,js获取视频帧数
需求:上传视频的时候需要知道该视频的帧数等信息,input的file直接读取是不能读取帧数的方式:通过引入mediainfo.js来获取视频的帧率和视频的总时长,用帧率*时长得出总帧数栗子:上面输出格式是 text 我们可以根据需要将格式设为 json 对象,这样就能获取想要的信息了//这是text 格式MediaInfo({ format: 'text' }, (mediainfo) => { fileinput.addEventListener('change', () =
2020-12-10 13:58:46 7941 3
原创 spark.md5.js获取文件的md5值
需求:需要获取上传文件整体的md5值,然后传给后端,所以采用spark.md5.js代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</titl
2020-12-10 11:34:33 4508 2
validation.js
2019-10-25
bootstrapStyle.zip
2019-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人