电视剧
settimeout(setTimeout、Promise、Async-await的区别)

1. setTimeout

console.log('script start')	//1. 打印 script startsetTimeout(function(){    console.log('settimeout')	// 4. 打印 settimeout})	// 2. 调用 setTimeout 函数,并定义其完成后执行的回调函数console.log('script end')	//3. 打印 script start// 输出顺序:script start->script end->settimeout

3. async/await

async function async1(){   console.log('async1 start');    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

async 函数返回一个 Promise 对象,当函数执行的时候,一旦遇到 await 就会先返回,等到触发的异步操作完成,再执行函数体内后面的语句。可以理解为,是让出了线程,跳出了 async 函数体。

举个例子:

async function func1() {    return 1}console.log(func1())
setTimeout、Promise、Async/await的区别nerror="javascript:errorimg.call(this);">

很显然,func1的运行结果其实就是一个Promise对象。因此我们也可以使用then来处理后续逻辑。

func1().then(res => {    console.log(res);  // 30})

await的含义为等待,也就是 async 函数需要等待await后的函数执行完成并且有了返回结果(Promise对象)之后,才能继续执行下面的代码。await通过返回一个Promise对象来实现同步的效果。


顶一下()     踩一下()

热门推荐

发表评论
0评