如果不是 Promise对象,就直接返回对应的值async function f(){ // 等同于 // return 123 return await 123}f().then(v => console.log(v)) // 123不管await后面跟着的是什么,await都会阻塞后面的代码async function fn1 (){ console.log(1) await fn2() console.log(2) // 阻塞...
asyncfunctionasync1() {console.log('1')awaitasync2()console.log('AAA') }asyncfunctionasync2() {console.log('3')returnnewPromise((resolve, reject) =>{resolve()console.log('4') }) }console.log('5')setTimeout(() =>{console.log('6') },0);async1()newPromise((resolve) =>{consol...
async/await (重点) (个人注解:async/await 底层依然是 Promise,所以是微任务,只是 await 比较特殊) async 当我们在函数前使用async的时候,使得该函数返回的是一个Promise对象 asyncfunctiontest() {return1//async的函数会在这里帮我们隐士使用Promise.resolve(1)}//等价于下面的代码functiontest() {returnnewPromis...
async function fn1 (){ console.log(1) await fn2() console.log(2) // 阻塞 } async function fn2 (){ console.log('fn2') } fn1() console.log(3) 上面的例子中,await 会阻塞下面的代码(即加入微任务队列),先执行 async外面的同步代码,同步代码执行完,再回到 async 函数中,再执行之前阻塞的代码 ...
setTimeout(function (){ console.log('2') }, 1000) console.log('3') 输出结果:1 3 2 setTimeout回调进入异步任务中的宏任务,从上到下先执行同步任务,再执行宏任务。 输出2 console.log('1') setTimeout(function callback(){ console.log('2') ...
jquery async 全局 js async function 1.1什么叫异步? 异步async是相对于同步sync来说的,顾名思义 同步就是执行完一件事情后,再去执行下一件事情。而异步 ,比如以下例子 setTimeout(function cbFn() { console.log('这是一个异步任务!'); },1000);...
async function fn(){ console.log(2) await console.log(3) console.log(4) //最重要的是这一步不明白 } setTimeout(()=>{ console.log(5) },0) fn(); new Promise((resolve)=>{ console.log(6) resolve(); }).then(()=>{ console.log(7) ...
async function a() { console.log('async-a'); await b(); console.log('async-b');};async function b() { console.log('async-b');};console.log('start');setTimeout(()=>{ console.log('setTimeout-1');},1000);setTimeout(()=>{ console.log('setTimeout-2'); new ...
浏览器的事件循环(event loop)中分成宏任务和微任务。JS 中任务分成同步任务和异步任务。 1. 宏任务(macro task) JS 中主栈执行的大多数的任务,例如:定时器,事件绑定,ajax,回调函数,node中fs操作模块等就是宏任务 2. 微任务(micro task) promise, async/await, process.nextTick等就是微任务。
传递一个命名函数给作为回调参数,而不是传递匿名函数例:async.js 库可以帮助我们处理多重Ajax requests/responses,如: 1 async.parallel([ 2 function( done ) { 3 GMaps.geocode({ 4 address: toAddress, 5 callback: function( result ) { 6 done( null, result ); 7 } 8 }); 9 }, 10 function...