异步流程控制是javascript无法回避的问题
同步是一个任务执行完后在执行下一个任务,异步是指多个任务同时执行,因此如果有B任务需要任务A的结果就涉及到了异步流程控制的问题
回调函数
这是异步编程最基本的方法
function f1(callback) {
console.log('start to run f1.');
setTimeout(function () {
console.log('f1 is finished. callback f2');
callback();
},3000);
}
function f2() {
console.log('start to run f2.');
}
f1(f2);
运行结果
start to run f1.
f1 is finished. callback f2
start to run f2.
Promise
Promise对象是ES6新的规范,每一个异步任务返回一个Promise对象,该对象有一个then方法,允许指定回调函数
var getTestJson = function (url) {
var promise = new Promise(function(resolve,reject){
var xhr = new XMLHttpRequest();
xhr.open("GET",url,true);
xhr.onreadystatechange = function () {
console.log("this.readyState:"+this.readyState+",this.status:"+this.status);
if(this.readyState !== 4) {
return;
}
if(this.status === 200){
resolve(this.response);
} else {
reject(new Error(this.statusText));
}
}
xhr.responseType = "json";
xhr.setRequestHeader("Accept","application/json");
xhr.send();
});
return promise;
};
var url = "http://localhost:8000/getJson";
getTestJson(url).then(function (json) {
console.log('get the data back',json);
},function (error) {
console.log('error',error);
});
getTestJson是一个异步任务,在任务执行结束后会调用.then方法
http://localhost:8000/getJson该地址是我在本地用nodejs搭的后台
分享到:
相关推荐
StuQ分享专题《深入浅出js(Node.js)异步流程控制》完整版
Jscex:回归JavaScript的异步流程控制类库
Defer 异步流程控制实现用法var promise = function(){ var deferred = new Defer; setTimeout(function(){ var rand = Math.random() > .5; if(rand){ deferred.resolve('ok'); }else{ deferred.reject('error'); }...
NULL 博文链接:https://schifred.iteye.com/blog/2318936
一种基于 STM32 微控制器的三相异步电机变频调速控制系统的 设计方案。系统采用矢量控制 (VC) 策略和电压空间矢量脉宽调制 (SVPWM) 方法,首先详细阐述了矢量控制的原理、 SVPWM 技术原 理及其调制方法; 接着介绍了...
基于DSP28335的三相异步电机开环V/F控制程序,主体部分使用TI的DMC库中的函数,仿真调试无报错,完整工程,可直接烧写到dsp当中在线调试
主要给大家介绍了关于Javascript异步流程控制之串行执行的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
异步电机矢量控制C程序,机遇电机的电流模型计算电角度
文件包括异步电动机矢量控制SIMULINK文件以及其详细的说明。适合学习异步电动机矢量控制的初学者。(注意matlab的兼容性,2018b)有任何资源问题欢迎提问。
三相交流异步电动机交流调速系统直接转矩控制仿真模型
第3章 异步电机矢量控制系统的仿真研究 13 3.1 矢量控制的基本概念及特点 13 3.1.1 矢量控制的概念 13 3.1.2 矢量控制的特点 16 3.2 仿真工具 16 3.2.1 MATLAB的简介 16 3.2.2 MATLAB中的SIMULINK仿真模块的使用 18 ...
基于matlab的异步电机矢量控制,适合于新手学习,交作业也可
完美结合的异步流程控制库! 能用简单优美的方式将任何同步或异步回调函数转换成then()链式调用! 你可以在服务器端(node.js)或浏览器中使用then.js,兼容ie6/7/8。 特征 可以像标准的 Promise 那样,把N多异步回调...
异步电机闭环控制PWM启动simulink模型和C程序
第5章 基于SVPWM的异步电机控制的仿真模型 32 5.1 SVPWM逆变器供电下异步电动机调速系统仿真模型 32 5.2 仿真结果及分析 33 第6章 总结与展望 36 致谢 39 参考文献 40
异步电动机矢量控制仿真模型,供大家参考学习
附件里是异步电机vf控制matlab仿真模型,仿真平台是matlab2010b,亲测可用!
编语言编制了矢量控制系统程序。在该系统中利用高性能的电机控制专用芯片TMS320F2812 的强大运算能力和快速实时处理能力,使复杂的控制算法更加容易实现,实现异步电动机高 性能控制。该矢量控制系统的研究为今后...
基于矢量控制的异步电机仿真程序,有速度环和电流环,SVPWM
异步电机的VF控制c程序说明,控制原理的说明