异步与回调

异步编程

概念解析

  • 同步调用
    程序是顺序执行的,必须执行完一段程序之后才能够执行下一段程序
    也称作阻塞式调用
  • 异步调用
    一段异步调用代码还未执行完毕,可以继续执行下一段代码。当代码执行完以后,通过回调返回继续执行相应的逻辑,而不耽误其他代码的执行。

    举例:在考试的时候,有的同学思考一道题目,当问题没有解决的方法时会继续看下一题,下一题题目的解答不会受到上一题没有解决的影响,当上一题题目有思路的时候则返回继续做题,这就回调的过程。(回调不等于异步调用)

    回调是一种解决异步函数执行结果的处理方法。在异步调用,如果我们希望讲执行的结果返回并且处理时,可以通过回调函数的方法解决。

代码举例

//异步调用的例子
function Person(){
    this.think = function(callback){
        //定义person对象的think方法
        setTimeout(function(){console.log('thinking-----');callback();}, 5000);
    }
        //answer方法
    this.answer = function(){
        console.log('I am answering other question');
    }
}
var person = new Person();
person.think(function(){
    console.log('thinking 5 second,get the right answer');
});
person.answer();
//只是简单的回调,并没有异步
function waitFive(name,function_name){
    var pus = 0;
    var currentDate = new Date();
    while(pus<5000){
        var now = new Date();
        pus = now - currentDate;
    }
    function_name(name);
}
function echo(name){
    console.log(name);
}

waitFive("qjj",echo);
console.log("over");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值