`
yilianxinyuan
  • 浏览: 21511 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

异步流程控制

阅读更多
异步流程控制是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搭的后台
分享到:
评论

相关推荐

    Node.js-StuQ分享专题《深入浅出jsNode.js异步流程控制》完整版

    本专题《深入浅出js(Node.js)异步流程控制》将探讨Node.js中的异步编程这一核心概念,帮助开发者更深入地理解和掌握这一技术。 异步编程是Node.js的核心特性之一,它允许程序在等待I/O操作完成时继续执行其他任务...

    Jscex:回归JavaScript的异步流程控制类库.pdf

    Jscex:回归JavaScript的异步流程控制类库 Jscex是JavaScript异步流程控制类库,旨在解决JavaScript异步编程的难题。JavaScript是一门单线程语言,用户代码一旦发生阻塞则整个程序便会陷入停滞,因此它天生带有很强...

    async异步流程控制模块

    在JavaScript编程中,异步流程控制是至关重要的一个部分,特别是在处理I/O密集型任务时,如网络请求、文件读写等。`async/await`是ES2017引入的一种新的异步处理方式,它使得异步代码更加接近同步代码的写法,提高了...

    Defer:异步流程控制 遵循PromiseA+规范

    Defer 异步流程控制实现用法var promise = function(){ var deferred = new Defer; setTimeout(function(){ var rand = Math.random() > .5; if(rand){ deferred.resolve('ok'); }else{ deferred.reject('error'); }...

    基于DSP28335的三相异步电机V/F控制程序

    总的来说,这个项目不仅涵盖了TMS320F28335 DSP的基础知识,还涉及到了三相异步电机的V/F控制理论、TI的DMC库的使用、以及嵌入式系统的软件开发流程。对于学习和理解电机控制、数字信号处理以及嵌入式系统设计的...

    异步电机矢量控制系统设计.doc

    异步电机矢量控制系统设计的关键技术包括矢量变换、坐标变换、三相异步电机数学模型的解耦方法、转子磁链计算方法、矢量控制算法、DSP处理器控制核心设计、硬件电路设计、软件流程设计、仿真分析等。 矢量变换是将...

    异步电机矢量控制.rar

    异步电机矢量控制是一种高级的电机控制技术,它通过模拟直流电机的动态特性来提升交流电机的控制性能。在本压缩包“异步电机矢量控制.rar”中,包含了两个关键文件:一个详细的仿真说明文档(仿真说明.docx)和一个...

    异步电机矢量控制C程序

    在"异步电机矢量控制C程序"中,关键知识点主要包括以下几个方面: 1. **异步电机理论**:异步电机,也称为感应电机,工作原理基于电磁感应。在三相电源作用下,定子产生旋转磁场,通过转子绕组的切割磁感线产生转矩...

    异步电动机矢量控制系统仿真与应用.pdf

    异步电动机矢量控制系统仿真与应用 异步电动机矢量控制系统是当前电机控制领域中的一种重要技术,旨在提高异步电动机的运行效率和可靠性。该系统的核心是矢量控制算法,通过对三相异步电动机的物理模型进行转换,将...

    基于PLC技术的三相异步电动机的控制设计.pdf

    PLC(Programmable Logic Controller,程序逻辑控制器)是一种基于微处理器的控制设备,可以实现复杂的控制逻辑和操作。三相异步电动机是一种常用的电机类型,广泛应用于工业、交通、家电等领域。 PLC控制系统的...

    基于stm32的交流异步电机控制系统的设计

    一种基于 STM32 微控制器的三相异步电机变频调速控制系统的 设计方案。系统采用矢量控制 (VC) 策略和电压空间矢量脉宽调制 (SVPWM) 方法,首先详细阐述了矢量控制的原理、 SVPWM 技术原 理及其调制方法; 接着介绍了...

    Javascript异步流程控制之串行执行详解

    本文主要探讨的是如何实现异步流程控制中的串行执行,确保一系列任务按照特定顺序依次执行。 首先,串行执行在异步场景下意味着任务A完成后才会开始任务B,任务B结束后才开始任务C,以此类推。传统的回调函数方式是...

    异步电机矢量控制

    异步电机矢量控制是一种先进的电动机控制技术,它通过模拟直流电机的动态特性来提升交流电机的性能。在传统异步电机控制中,电机的转矩和速度控制较为复杂,因为它们受到定子电流的两个分量(励磁电流和转矩电流)的...

    异步电机闭环控制simulink模型和C程序

    总的来说,“异步电机闭环控制PWM启动simulink模型和C程序”涵盖了电机控制领域的多个核心知识点,包括异步电机的工作原理、闭环控制理论、PWM控制技术、Simulink建模以及C语言编程。通过学习和掌握这些内容,我们...

    基于SVPWM的异步电机控制 方法的仿真研究MATLAB/SIMULINK仿真软件毕业论文

    ### 基于SVPWM的异步电机控制方法的仿真研究 #### 一、引言 随着全控型快速半导体自开关器件和智能型高速微控制芯片的发展,数字化PWM控制技术已成为现代电力电子领域的重要趋势。传统的SPWM(Sinusoidal Pulse ...

    异步电机vf控制matlab仿真模型

    附件里是异步电机vf控制matlab仿真模型,仿真平台是matlab2010b,亲测可用!

    转差频率控制的新型异步电机矢量控制调速系统的研究和仿真.pdf

    "转差频率控制的新型异步电机矢量控制调速系统的研究和仿真" 本文研究了转差频率控制的新型异步电机矢量控制调速系统,并对其进行了仿真。该系统基于矢量控制的基本原理和概念,利用Matlab软件包构建了异步电机转差...

    异步电机直接转矩控制仿真模型

    三相交流异步电动机交流调速系统直接转矩控制仿真模型

    基于MATLAB异步电机矢量控制的仿真研究

    第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 ...

    基于PLC的三相绕线式异步电机启动控制.doc

    该系统使用PLC控制器件,设计了输入输出接线图和梯形图程序,实现了三相绕线式异步电动机的启动控制。 知识点一:三相绕线式异步电动机的特点 * 三相绕线式异步电动机存在启动电流大、启动转矩不大的缺点,只能...

Global site tag (gtag.js) - Google Analytics