-
ajax:asynchronous javaScript and XML
-
核心:异步通信,局部刷新
-
实现:
//1
const xhr = new (window.XMLHttpRequest||window.ActiveXObject)("Microsoft.XMLHTTP");
//2
xhr.open(type:string,url:string);
//3
xhr.send(data:string|object|any);
//4
xhr.addEventListener("readystatechange",function(){
if(xhr.readyState === 4 && ((xhr.status >=200 && xhr < 300)|| xhr.status ===304) ){
xhr.responseXXX(responseText)
}
})
-
-
-
随机数据:
-
7大规则
-
Random函数
-
正则
基本格式:
let data = `Mock.mock({
"list|30": [{
"id|+1": 100,
firstName: "@cfirst",
lastName: "@clast",
"gender|1":["男","女"],
phone:/1[3-9]\d{9}/,
fullName:function(){
return this.firstName+this.lastName;
}
}]
}).list`;
-
-
拦截ajax:
Mock.mock(/getStudents/, "get", function ({ url }) {
//studentmanagesystem/getStudents?username=zs&password=123
const user = toObj(url.split("?")[1]);
if (user.username === "zs" && user.password === "123") {
return true;
}
return false;
});
-
-
异步-asynchronous
-
区别:
-
同步:按顺序排队执行任务
-
异步:js采用事件驱动机制,在单线程的模式下,使用异步回调的方式来实现非阻塞的io操作。具体实现原理就是:事件循环+异步队列
-
异步有序:回调嵌套(回调地狱)
-
-
-
promise
-
状态:pending、fulfilled、rejected
-
修改状态的方式:调用构造函数中的resolve函数和reject函数
-
与状态对应的监听器:通过then方法注册的onfulfilled和onrejected
-
then方法的返回值是一个promise实例:(其状态变化规则如下)
-
-
函数有一个普通的返回值,函数执行完成,promise实例会变成完成状态,并且返回值就是promiseValue。
-
返回值是promise实例,该promise实例与then的promise实例保持同步。
-
返回一个thenable对象,(使用太少,不做介绍)。
-
如果报错,promise实例变成拒绝状态
-
generator
-
iterator:遍历的统一方案("for...of" , "...")
-
generator:分段函数(“*” , “yield”)
-
-
ES7:promise+generator
-
async 和 await
-
异步函数的返回值是一个promise实例,其状态变化规则参见then方法
-
await用于异步函数内部,用来等待异步操作的结果(promiseValue),其规则参见then方法
-
-
宏任务和微任务
-
执行机制
-
-
其他方法
-
all
-
race
-
resolve
-
-
实践
-
相关文章
- 10-07vue异步加载amap高德地图,解决刷新浏览器地图不显示问题
- 10-07Verilog中同步复位和异步复位比较
- 10-07Ajax GET
- 10-07网络处理2-异步POST请求和同步请求
- 10-07bootstrap weebox,支持ajax的模态弹出框
- 10-07SSM项目(一)Day05修改员工(ajax技术解析出的按钮失效和rest风格PUT失效问题)
- 10-07解决forEach函数中异步调用及Promise.all()的基础使用
- 10-07在forEach回调函数中存在异步操作的处理
- 10-07js循环调用异步请求,实现同步
- 10-07GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例