欢迎来真孝善网,为您提供真孝善正能量书籍故事!

深入理解:async / await 异步编程技术详解

时间:11-15 现代故事 提交错误

其实深入理解:async / await 异步编程技术详解的问题并不复杂,但是又很多的朋友都不太了解,因此呢,今天小编就来为大家分享深入理解:async / await 异步编程技术详解的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

返回“你好世界”;

}

timout()此时没有输出。

console.log(timeout()) 此时console.log输出一个promise对象。

请注意,async 函数返回一个Promise 对象;要获取promise对象的返回值,需要使用then方法:

异步函数超时(){

返回“你好世界”

}

超时().then(结果={

控制台.log(结果)

})

console.log("虽然它在后面,但我先执行它") 在控制台中,首先打印"虽然它在后面,但我先执行它",然后打印"hello world"。说明异步函数不会阻塞后续代码的执行。

Console.log(timeout()) 上面代码打印的promise已经解决了,

Promise {:"hello world"} 这是async函数的内部实现原理:如果async函数中有返回值,则调用该函数时,内部会调用Promise.solve()方法进行转换进入一个promise.resolve对象作为返回;但如果报告内部错误,则会调用Promise.reject() 返回一个Promise 对象。

相应修改超时函数:

异步函数超时(标志){

如果(标志){

返回“你好世界”

}别的{

返回“失败”

}

}

控制台.log(超时(真))

console.log(timeout(false)) 控制台打印如下:

承诺{:"hello world"}

Promise{:"failure"}

await简介

await表示等待。任何表达式都可以放在await关键字之后,但更常见的是返回promise对象的表达式。注意await关键字只能放到async函数里面构造一个函数并返回一个promise对象,该函数是在2秒后将输入值乘以2:

函数doubleAfter2seconds(num){

返回新的Promise((解决,拒绝)={

设置超时(()={

解决(2*num)

},2000)

})

现在编写另一个异步函数,以便您可以使用await 关键字。放在await后面的是一个可以返回promise对象的表达式,即上面的doubleAfter2seconds函数:

异步函数测试(){

让结果=等待doubleAfter2seconds(100)

控制台.log(结果)

}调用测试函数,打开控制台,2秒后输出200。

代码执行过程:调用测试函数时,遇到await,await表示等待。当代码到达这里时,就暂停在这里,不再继续执行,等待promise对象执行完毕。然后获取promise.resolve的值并返回。获得返回值后继续执行。具体到上面的代码:遇到await后,代码暂停执行,等待doubleAfter2seconds(100)完成执行。 doubleAfter2seconds(100) 返回的Promise 开始执行。 2 秒后,promise 解析并返回200。它被分配给result,暂停结束。代码开始执行。

这个函数看不到async/await的作用,但是如果把三个doubleAfter2seconds()函数的结果相加呢?

异步函数tribleTest(){

让第一=等待doubleAfter2seconds(100);

让第二个=等待doubleAfter2秒(100);

让第三个=等待doubleAfter2秒(100);

console.log(第一+第二+第三);

好了,文章到此结束,希望可以帮助到大家。

用户评论

孤败

终于明白异步操作是怎么工作的了!

    有9位网友表示赞同!

(り。薆情海

感觉异步函数能让我写出更流畅、更简洁的代码。

    有11位网友表示赞同!

万象皆为过客

学习下 async/await 是提高编程效率的大法啊!

    有12位网友表示赞同!

心已麻木i

之前一直对异步编程没头绪,现在看这个标题挺心动的。

    有18位网友表示赞同!

七夏i

终于有机会深入了解一下 async/await 了,期待能写出更强大的应用。

    有12位网友表示赞同!

冷落了♂自己·

异步函数这技术简直太牛了,可以用在你做任何网络请求的地方。

    有15位网友表示赞同!

晨与橙与城

以前用 Promise 就感觉很复杂,看能不能通过 async/await 简化代码流程。

    有19位网友表示赞同!

别在我面前犯贱

很多资料都说 async/await 是javascript 的必修课,这下终于可以去学习了!

    有10位网友表示赞同!

有你,很幸福

异步编程确实能提高性能,这篇文章肯定有干货!

    有6位网友表示赞同!

半梦半醒半疯癫

想用 async/await 来实现一些复杂的后台任务处理。

    有8位网友表示赞同!

看我发功喷飞你

原来异步函数还能写得这么优雅,让我重新认识了javascript

    有13位网友表示赞同!

自繩自縛

感觉这个技术可以帮我理解并发编程的逻辑。

    有5位网友表示赞同!

留我一人

学习async/await ,希望能把我的代码变成更高效的那种!

    有17位网友表示赞同!

眉黛如画

之前没接触过异步编程,这篇文章算是入门资料之一吧?

    有6位网友表示赞同!

蝶恋花╮

有了 async/await ,我可以更清晰地组织复杂的任务流程。

    有13位网友表示赞同!

陌上花

想要实现实时数据更新,相信 async/await 会起到关键作用。

    有6位网友表示赞同!

今非昔比'

学习一些新的技术总是好的,比如这个async/await。

    有8位网友表示赞同!

终究会走-

看标题感觉这篇文章应该很详细,可以把异步编程讲透了!

    有11位网友表示赞同!

一纸愁肠。

期待这篇关于 async/await 的文章能让我更快地上手!

    有6位网友表示赞同!

【深入理解:async / await 异步编程技术详解】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活