文章 评论 浏览 576
@sisterAn 你好,关于你的 3.async/await 我觉得不是很完备。
async function async1(){ console.log('async1 start'); // 我理解是这里的 async2 函数是返回的 Premise 对象 // 但是 Premise 其本身就是一个宏任务 不用 await 也应该是同步执行的 await async2(); console.log('async1 end') } async function async2(){ console.log('async2') } console.log('script start'); async1(); console.log('script end') // 输出顺序:script start->async1 start->async2->script end->async1 end
而且请看一下下面例子是否能够表明清楚或者有什么不对的地方
// 被添加入下一次宏任务队列 setTimeout(_ => console.log(6)); async function test() { console.log(1); // 我的理解是 // 遇到 await 先执行其同步内容 // 让出执行线程(跳出当前任务)同时推入微任务队列 继续往下执行 // 执行完之后 回来继续执行 await new Promise((resolve, reject) => { console.log(2); resolve(); }).then(_ => console.log(4)); // 这里 5 没有进入微任务队列 只不是相当于被挂起了 console.log(5); } test(); test(); console.log(3); // 如果执行一次 test 函数 结果 => 123456 // 如果执行两次 test 函数 结果 => 1212344556
如果是要求实现localStorage的持久化存储功能....这是不可能的; 如果不是,那么这个题....好像没有什么意义啊,最多考察一下语法
文章 0 评论 0
接受
@sisterAn 你好,关于你的 3.async/await 我觉得不是很完备。
而且请看一下下面例子是否能够表明清楚
或者有什么不对的地方
第 8 题:setTimeout、Promise、Async/Await 的区别