作者归档:Min

JavaScript 异步流程控制的知识点整理

在写信息管理系统的时候,经常需要等待前面的任务执行完,比如最常见的Ajax请求后做弹窗提示,又或者是多个Ajax需要并行/串行执行操作等。

因为JS是单线程语言,所以在整个执行环境都依靠EventLoop。因此,实现异步除了最基本的Callback回调函数,社区还开发了Promise、Async/Await等语法糖或者库,我写一篇文章整理一下工作以来接触到的异步知识

Callback 回调函数

异步控制接触最早的,其实就是这个Callback回调函数,代码示例如下

// JQuery的Ajax请求
$.ajax({
   url: '/api/system/login',
   params: {},
   success: () ={
      console.log('在异步Ajax请求成功之后,会调用到此回调函数');
   }
});

// setTimeout/setInterval绑定回调函数
setTimeout(()={
    console.log('两秒之后会调用到此函数');
},2000)

// Node.js 经常的回调函数以及传参
var fs = require('fs');

fs.readFile('test.txt', 'utf-8', function(err, data) {
    // 这里同样绑定了回调函数,Node.js设计一般第一个参数是err,第二个参数是data数据等
    if(err) 

(六)关系词和关系副词 – 赖世雄语法知识点

关系副词的种类

  1. where=(in which, on which, at which)
  2. When=(in which, on which, at which)
  3. Why=(for which)
  4. How=(in which)

经典句式:When …. 一….就…..

  1. The minute ….
  2. The instant
  3. The day
  4. Everyday
  5. As soon as

关系词

  1. 符合关系代词的例子
    A. whoever
    a. Anybody who
    B. Whomever

(五)关系代词 – 赖世雄语法知识点

  1. 定义
    A. 关系代词具有连词的作用,连接定语从句
    a. He is a man who(关系代词) was won the champion of that match(定语从句,修饰和限定主谓的作用句子叫定语从句)
  2. 用法
    A. 知识点整理
    a. 关系代词whom前面要有先行词(人、物),如a man
    b. 关系代词所引导的定语从句,需要在句子表示主语、宾语或表语
    c. 否则,必须前面必须要加介词,如for/with/in
    B. 实例讲解
    a. 例子A:He is a man whom I enjoy working (X)
    1. 这个地方,错在enjoy

(四)副词、连词 – 赖世雄语法知识点

副词连词的使用规则

  1. 避免连词“双重连接”
    A. 主句和从句不能都加连词,这样会导致重复,例如下面几个都是错误的
    a. Though …. But …. [x]
    b. Even if …. But ….[x]
    c. Because …. So I …. [x]
  2. 条件句和主句的时态
    A. 条件句用【一般现在时】,主句用【一般将来时】
    a. example:Once I am free, I will take a trip.
  3. Besides 和 In addition的区别

(三)句式的一些特殊用法 – 赖世雄语法知识点

感叹句格式

  1. what + [a] + n + 主语 + 动词
    A. 主语可以是可数/不可数/单数/复数
    a. What a great man he is!
    b. What a good man you have made him!
  2. how + adj/adv + [a] + 主语 + 动词
    A. 主语只能是单数可数,但是用how many/much/few/little之后就能接复数不可数

(二)动词的一些特殊用法 – 赖世雄语法知识点

辨别Be动词后的V-ing是动名词还是现在分词

  1. 调换Washing cars 和 主语的顺序,如通顺则为动名词,或者是现在分词
    A. 动名词(通顺)
    a. his job is washing cars
    b. washing cars is his job
    B. 现在分词(不通顺)
    a. he is washing cars
    b. washing cars is he

重要知识点-感官动词必须加Like

  1. look like
  2. Sound like
  3. Smell like
  4. Taste like

(一)动词介词 – 赖世雄语法知识点

前提

有幸了解到赖世雄这位英语大师,在努力拜读masterpiece并整理相关的笔记,分享给大家。
如果有错误的地方,希望能在评论区里指出,这里感激不尽!

句子的形成

赖世雄老师的语法书没有提及句子的结构,我经过互联网的一番搜索之后,整理如下
(才疏学浅,如有错误请斧正)

主语:句子的主人公
谓语:描述主语的动作或状态
宾语:谓语涉及到的另一个对象
定语:用于主谓前做修饰和限定作用
状语:用在动词/形容词前,起到修饰和限定作用,对情况、时间、所处、方式等谓语进行修饰,修改功能、形容、副词或者句子
补足语:用在宾语后,表示宾语“怎么样”,“多久”,“多少”等
表语:对主语的说明,表示主语的身份、状态、特征、属性,在系动词后面
副词:adv,在句子中表示行为或状态特征的词

名词性从句遇到介词的几种处理办法

  1. 只用whether作为proposition的衔接
    A. I’m worried about whether he can do it
  2. 非要使用that从句
    A. 保留介词,介词 + the fact + that从句
    B. 保留介词,但that从句要做如下改动
    a. 去掉that
    b. that后的主语变成所有格
    c.

Redux数据流框架介绍,构建易维护的单向数据流

React本身是一个View层,尽管借助prop属性和事件,能够完成父子组件之间的通信,但是在一个逻辑复杂的系统里,往往DOM的层次很深,如果每一层都传递一遍prop,开发效率就会有所下降。

这个时候,我们需要有一个专门管理数据流的框架来处理——Redux,通过Store/Dispatch/Reducers等概念,将整个数据流进行抽象。除此之外,还能加一些中间件(middleware)来进行拦截操作。下面我整理一下我使用Redux以来的一些知识点

1, 安装Redux依赖

基础框架可以使用我的开源仓库https://github.com/tun100/webpack-configure-react,并且在package.json里添加以下依赖,并且执行命令cnpm i -S -D

    "react-redux": "^5.0.5",
    "redux": "^3.7.2",
    "redux-saga": "^0.15.6",

2,最简单的Redux配置

首先,在import顶部增加以下代码

import React, { useEffect, useState, useContext, PureComponent, Component } from 'react';
import ReactDOM from 'react-dom';
import { Provider, connect } from "react-redux";
import {