1 Star 0 Fork 0

Baboon-lagou / fed-e-task-01-01

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or Download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

Part 1 · JavaScript 深度剖析

本阶段主要围绕 JavaScript 语言本身以及它的周边语言进行深度介绍。

让你从深度和广度两方面更深入掌握 JavaScript 这门语言以及相关编程范式。

夯实前端开发基础,从而应对大型复杂应用开发,同时也为后期的高阶内容打下坚实的基础。

fed-e-task-01-01

函数式编程与 JS 异步编程、手写 Promise

  • 函数式编程
  • JS 异步编程
  • 手写 Promise

大多数框架和应用为了彻底解决代码重用问题都选择拥抱 函数式编程 ,本模块将带你学习函数式编程的思想以及一些常见的函数式编程库的使用和原理;

JavaScript 异步编程课程将带你理解 JS 内部运行机制,以及如何更好的解决 Callback Hell;

最后还会带你手写实现一个自己的 Promise。

练习题

谈谈你是如何理解 JS 异步编程的,EventLoop、消息列队都是做什么的,什么是宏任务,什么是微任务?

  1. JS 异步编程就是 Javascript 语言提供的异步编程方案。其主要目的用于解决程序运行过程中的阻塞问题。在 Javascript 中主要提供了 4 种异步编程方式。

    • 回调函数(callback) Javascript中最基本的异步编程方式

    • 事件监听 事件驱动模式。任务的执行不取决于代码的顺序,而取决于某个事件是否发生

    • 发布/订阅 当一个任务完成后,向信号中心发布一个信号。其他任务可以订阅这个信号。从而知道自己何时执行

    • Promises 对象 Promises 对象是 CommonJS 工作组提出的一种规范,目的是为异步编程提供统一接口

  2. 消息队列(回调队列) Javascript中存放异步任务的容器(管道)遵循先进先出原则。当执行栈为空时,Javascript会从消息队列中提取任务到执行栈中继续执行。

  3. EventLoop(事件循环)Javascript 反复到消息列队中提取任务的一个过程。

  4. 宏任务 消息队列中的每个任务即可称为宏任务

  5. 微任务 当前执行栈中产生的新的异步任务(Promise 、MutationObserver、process.nextTick(node))它们将在本轮执行完毕后立即执行而不会进入消息队列重新排队

代码题 移步 code 目录

一 、 将下面异步代码使用 Promise 的方式改进

/code/questions/questions-01.js 点这

二、基于以下代码完成下面的四个练习

/code/questions/questions-02.js 点这

三、基于下面提供的代码,完成后续的四个练习

/code/questions/functor/app.js 点这

四、手写实现 MyPromise 源码

/code/questions/myPromise/myPromise.js 点这

Repository Comments ( 0 )

Sign in to post a comment

About

JavaScript 深度剖析之函数式编程,JS 异步编程相关内容 expand collapse
JavaScript
MIT
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
JavaScript
1
https://git.oschina.net/Baboon-lagou/fed-e-task-01-01.git
git@git.oschina.net:Baboon-lagou/fed-e-task-01-01.git
Baboon-lagou
fed-e-task-01-01
fed-e-task-01-01
master

Search