大前端

JavaScript 异步编程

2021-04-25  本文已影响0人  丽__

同步模式与异步模式

时间循环与消息队列

异步编程的几种方式

Primise异步方案 宏任务 /微任务队列

Generator异步方案 Async/Await语法糖

console.log('global begin')
function bar () {
console.log('bar task') }
function foo () {
console.log('foo task')
bar()
}
foo()
console.log('global end')


/*依次输出   
*global begin
*foo task
*bar task 
*global end
*/
console.log('global begin')
setTimeout(function timer1 () {
console.log('timer1 invoke')
}, 1800)
setTimeout(function timer2 () {
console.log('timer2 invoke')
setTimeout(function inner () {
console.log('inner invoke')
}, 1000)
}, 1000)
console.log('global end')

/*依次输出
*global begin
*global end
*timer2 invoke
*timer1 invoke
*inner invoke
*/
image.png
function foo (callback){
  setTimeout(function(){
      callback()
  },300)
}

foo(function(){
  console.log("这就是一个回调函数");
  console.log("调用者定义这个函数,执行者执行这个函数");
  console.log("其实就是调用者告诉执行者异步任务结束后应该做什么");
})
上一篇下一篇

猜你喜欢

热点阅读