异步编程
土豆泥1号
一名前端工程师
展开
-
promise经典面试题
在urls数组中存放了 10 个接口地址。同时还定义了一个loadDate函数,这个函数接受一个url参数,返回一个Promise对象,该Promise在接口调用成功时返回resolve,失败时返回reject。要求:任意时刻,同时下载的链接数量不可以超过 3 个。 试写出一段代码实现这个需求,要求尽可能快速地将所有接口中的数据得到。var urls = [ 'http://jsonplaceholder.typicode.com/posts/1', 'http:/...原创 2020-11-03 20:08:17 · 328 阅读 · 0 评论 -
柯理化
柯理化代码演示function checkAge (age) { let min = 18 return age >= min}// 普通的纯函数function checkAge (min, age) { return age >= min}柯理化就是讲多个参数转化为几个分开的参数// 函数的柯里化function checkAge (min) { return function (age) { return age >= min原创 2020-10-30 23:44:18 · 177 阅读 · 0 评论 -
纯函数
概念相同的输入总能得到相同的输出,而且没有任何可观察的副作用 lodash是一个纯函数的功能库,提供了对数组,数字,对象,字符串,函数等操作的一些方法 数组中的slice和splice分别是纯函数和不纯的函数 slice返回数组中的指定部分,不会改变原数组 对数组进行操作返回该数组,会改变原数组 // 纯函数和不纯的函数// slice / splicelet array = [1, 2, 3, 4, 5]// 纯函数 得到相同的输出console.log(arra原创 2020-10-30 23:35:51 · 70 阅读 · 0 评论 -
函数式编程前置知识
前置知识函数是一等公民 高阶函数 闭包1.函数式一等公民函数可以存储在变量中 函数可以作为参数 函数可以作为返回值函数式一等公民是学习高阶函数,柯里化等的基础2.高阶函数可以把函数作为参数传递给另一个函数 可以把函数作为另一个函数的返回结果// 高阶函数-函数作为参数function forEach (array, fn) { for (let i = 0; i < array.length; i++) { fn(array[i]) }}//原创 2020-10-30 23:18:05 · 107 阅读 · 0 评论 -
js异步编程
一.谈谈你是如何理解js异步编程的,EventLoop,消息队列都是做什么的,什么是宏任务,什么是微任务?1.采用单线程工作的原因js这门语言刚刚创建出来的时候的特点就是单线程,用来实现页面上的交互,实现交互的核心就是dom操作,必须为单线程,否则就会出现线程同步问题(如删除、移动一起执行),浏览器不知道以哪个线程 为准单线程是指js执行环境中负责执行代码的线程只有一个缺点:有一步耗时的任务会出现阻塞为了解决这个问题,JavaScript将任务的执行模式分为同步模式和异步模式2.异步原创 2020-10-29 00:51:46 · 192 阅读 · 0 评论