美文网首页
异步与回调

异步与回调

作者: 毛毛独角兽 | 来源:发表于2018-01-30 13:41 被阅读0次
异步代码的特点:书写顺序与执行顺序不同。
console.log(1)
setTimeout(function(){
console.log(2)
},0)
console.log(3)

上面代码的书写顺序是1->2->3,但执行顺序是1->3->2。中间的sonsole.log(2)就是异步执行的。【代码的书写顺序和执行顺序可以不同哒~】

什么是异步?

先看看什么是同步:一定要等任务执行完了,得到结果,才执行下一个任务。
function taskSync = function(){
return '同步任务的返回值;
}

var result = taskSync() //result就是同步任务的结果
otherTask() //执行下一个任务
异步:不等任务执行完,直接执行下一个任务。
function taskAsync = function(){
var result = setTimeout(function(){
console.log('异步任务的结果')
},3000)
return result
}

var result = taskAsync() //result不是异步任务的结果,而是一个timer id
otherTask() //立即执行其他任务,不等异步任务结束
我们异步执行的结果,而是一个timer id,通过回调可以得到异步结果:
function taskAsync = function(callback){
var result = setTimeout(function(){
callback('异步任务的结果')
},3000)
return result
}

taskAsync(function callback(result){
consolr.log(result) //三秒钟后,这个callback函数会被执行
})
otherTask() //立即执行

所以【回调】经常用于获取【异步任务】的结果

什么是回调

A "callback" is any function that is called by another function which takes the first function as a parameter.

在一个函数中调用另外一个函数就是callback

function callback(){
alert("I am in the callback!");
}
function work(func){
alert("I am calling the callback!");
func();
}
work(callback);

回调函数在什么场景有用?

我要在特定的时候执行一个任务,至于是什么时候我自己都不知道。比如某一时间到了或者某一时间发生或者某一中断触发。

回调函数怎么起作用?

把我要执行的这个任务写成一个函数,将这个函数和某一时间或者某时间或者中断简历关联。当这个关联完成的时候,这个函数华丽的从普通函数变身成为回调函数。

回调函数什么时候执行?

当该回调函数关心的那个时间或者时间或者中断触发的时候,毁掉函数将被执行。一般是触发这个时间、时间或中断的程序主体(通常是个函数或者对象)观察到有一个关注这个东东的回调函数的时候,这个主体负责调用这个回调函数。

回调函数有什么好处?

最大的好处就是你的程序变成异步了。也就是你不必再调用这个函数的时候一直等待这个时间的到达、事件的触发或中断的发生(万一一直不发生,你的程序会怎样?)。在此期间你可以做别的事情。当回调函数被执行时,你的程序重新得到执行的机会,此时你可以继续做必要的事情了。

回调函数有什么问题吗?

既然有人问,当然就会有点问题,一个是学习成本比普通函数高,需要有一定的抽象思维能力,需要对应场景的理解。
另一个是回调函数很多情况下会附带有跨线程操作甚至于跨进程的操作,这些都是异步带来的成本。

相关文章

  • nodejs--day4笔记

    1. 同步与异步API 回调函数 通过回调函数返回异步API的值 代码执行顺序 2. promise 解决回调...

  • js回调与异步编程

    回调与异步编程 一、回调函数的使用场景 异步编程。 事件监听、处理。 setTimeout、setInterval...

  • 异步与回调

    异步 我对异步的理解: 异步是不等结果,往下执行;同步是等结果出现后,再往下执行 代码中出现异步程序时,如例2中,...

  • 异步与回调

    异步代码的特点:书写顺序与执行顺序不同。 上面代码的书写顺序是1->2->3,但执行顺序是1->3->2。中间的s...

  • 异步与回调

    1. 同步 同步:一个任务执行完拿到结果之后,再执行下一步操作。即顺序执行代码。 2. 异步 异步:不等待一个任务...

  • 异步的实现

    异步的三种实现方式: 回调函数事件Promise 回调函数 回调函数不一定是异步 但是异步一定是回调函数。 事件 ...

  • 前端入门11 -- JavaScript之Promise

    回调函数 回调函数分为两种类型,分别为同步回调与异步回调; 同步回调:会立即执行,完全执行完了才结束,不会放入回调...

  • 同步、异步

    同步:等待结果异步:不等待结果 注意,异步常常伴随回调一起出现,但是异步不是回调,回调也不一定是异步。 【时序图】...

  • 异步和回调

    异步 异步就是「不等结果」,直接进行下一步怎么拿到结果回调可以拿到结果 回调 「回调是一种拿异步结果的方式」「回调...

  • (2018-05-30.Python从Zero到One)8、(T

    7 异步与WebSockets 知识点 理解同步与异步执行过程 理解异步代码的回调写法与yield写法 Torna...

网友评论

      本文标题:异步与回调

      本文链接:https://www.haomeiwen.com/subject/fqqczxtx.html