美文网首页
异步与很多其他

异步与很多其他

作者: 前端咸蛋黄 | 来源:发表于2019-05-01 18:43 被阅读0次

Javascript语言的执行环境是“单线程”,Javascript语言将任务的执行模式分成两种:同步和异步。

  • “同步模式”就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;
  • "异步模式"则完全不同,程序的执行顺序与任务的排列顺序是不一致的、异步的。
  • "异步模式"非常重要。在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。

下面看阮一峰的异步编程的四种方法:

一、回调函数

把函数作为参数传入到另一个函数中。这个函数就是所谓的回调函数。
假设有两个函数,f1很耗时,在同步模式下,f2只能等f1执行完毕后再执行

function f1(){console.log(1)}
function f2(){console.log(2)}
f1()
f2()
//1
//2

如果我们希望f2在f1执行结束后立刻执行

function f2(){console.log(2)}
function f1(callback) {
  console.log(1)
  callback()
}
f1(f2)
//1
//2

setTimeout()函数支持异步处理,如果我们希望f1延迟执行

function f2(){console.log(2)}
function f1(callback){
  setTimeout(function() {console.log(1)}, 1000)
  callback()
}
f1(f2)
//2
//1
二、事件监听

异步任务的执行不取决于代码的顺序,而取决于某个事件是否发生。

三、发布/订阅

我们假定,存在一个"信号中心",某个任务执行完成,就向信号中心"发布"(publish)一个信号,其他任务可以向信号中心"订阅"(subscribe)这个信号,从而知道什么时候自己可以开始执行。

四、promise

看promise

另外,ES2017 标准引入了 async 函数,使得异步操作变得更加方便。

五、async

相关文章

网友评论

      本文标题:异步与很多其他

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