异步与同步
异步: 所谓异步,简单来说就是 不能连续执行,上一个任务没运行完,下一个任务照样运行,任务之间不能连续,不能首尾相连。
同步: 同步则与异步相反,是 连续执行 的,下一个任务紧接着上一个任务之后运行,如果上一个任务没有运行完,下一个任务没法运行。
异步的解决方案
1、回调函数
当我们需要在执行的函数中进行其他的操作,就需要用到回调函数了。如:
function fn(args, callback){
//TODO...
callback();
}
fn(args, ()=> {
//TODO...
})
2、事件监听
如DOM事件的监听、鼠标键盘的事件监听等,都是异步执行的。
document.addEventListener("click", (e)=>{
//TODO...
}, false)
3、发布/订阅
比如我要开一家新公司,供用户加入,当我在新公司发布消息时,只有注册用户才能收到消息。
我们架构程序时,我们可以从使用出发,比如先写我们要怎么用,如:
// 首先要开新公司
const company = new Company();
// 然后需要有些用户吧,比如用户A、B等等
// 用户A
const userA = function(msg){
console.log(`用户A接收到的消息为:${
msg}`)
}
// 用户B
const userB = function(msg){
console.log(`用户B接收到的消息为:${
msg}`)
}
// 再接着把这些用户注册到新公司里(他们就是这公司的注册用户了)
company.addSubscribe(userA, userB);
// 这样我就可以以公司的名义向用户发送消息了吧
company.