<!-- JS运行机制的顺序 1.同步 2.process.nextTick 3.微任务(promise.then) 4.红任务(计时器,ajax,读取文件) 5.setImmediate 这是一次事件循环,如果还有任务队列里还有事件,会在setImmediata之后执行 运行栈会执行同步代码,异步代码会在任务队列中执行,事件循环机制会不断检测任务队列中的事件, 存在事件即会执行,settimeout的延迟是延迟后将事件存放到任务队列中。 --> async function fun() { return 1 } //async函数的返回值是一个promise对象,所以可以调用。then方法,data为async函数的返回值 function fun() { return new Promise((resolve) => { resolve(2) }) } //这两种写法的结果是一样的。 fun().then((data) => { console.log(data) }) let p1 = new Promise((resolve => { resolve(3) })) let p2 = new Promise((resolve => { resolve(4) })) async function Fun() { let a = await p1 //可以通过await调用promise对象 let b = await p2 console.log(a) console.log(b) return 99 } Fun().then((data) => { console.log(data) }) async function fun1() { console.log(300) let data = await fun2() console.log(data) } async function fun2() { console.log(200) return 100 } fun1()
标签:function,顺序,console,log,JS,resolve,运行机制,async,data From: https://www.cnblogs.com/GFM0518/p/16596158.html