异步与Promise

134 阅读1分钟

异步与Promise

异步

  • 能直接拿到结果的叫同步
  • 不能直接拿到结果的,需要等待结果出来的,就是异步

回调

写了一个函数却不主动调用,而是让其他函数去调用,这就是回调,即:回头调用一下

例子:

 function f1(){}
 function f2(fn){
     fn()
 }
 f2(f1)

分析:

f1写了,但是作为写代码你的并没有主动去调用它,真正调用它的是f2。这说明f1没有马上调用,而是让f2那去调用。

f2就是回调。

异步与回调的关系

关联

由于异步不能马上拿到结果,我们通常会写一个函数,当异步结果出来了以后,再让浏览器去调用这个函数。我们写的这个函数是给浏览器调用的,很明显是一个回调函数。

他们之间是一个合作关系。

区别

异步任务需要用到回调函数来通知结果

但回调函数不一定只用在异步任务里面

回调函数也可以用在同步任务里面

回调函数就像是漂亮的女孩子,异步同步都喜欢她。

判断同步异步

返回值处于以下三种情况的内部时,此函数就是异步函数:

  • seTtimeout
  • AJAX(即XMLHttpRequest)
  • AddEventRequest

注意:

由于异步任务一般不能直接拿到结果,因此我们设一个不调用的函数,将其传给异步任务调用,异步任务完成时调用这个回调函数时,会将其结果作为参数进行调用