资讯专栏INFORMATION COLUMN

最简单的async、await异步

huhud / 1294人阅读

摘要:异步应该是目前最简单的异步方案了中新增了两个关键词。可以声明一个异步函数,此函数需要返回一个对象。可以等待一个对象,并拿到结果。

async/await异步

</>复制代码

  1. Async/Await应该是目前最简单的异步方案了,ES7 中新增了 async/await 两个关键词。async 可以声明一个异步函数,此函数需要返回一个 Promise 对象。await 可以等待一个 Promise 对象 resolve,并拿到结果。 一个栗子:

先看一下同步状态下 同步

</>复制代码

  1. console.log(1);
  2. console.log(2);
  3. setTimeout(function(){
  4. console.log(3)
  5. },3000);
  6. console.log(4);
  7. console.log(5)

上边的打印结果大家想必都知道,这是同步状态下的执行顺序

在看一个例子

</>复制代码

  1. function p1(){
  2. return new Promise(function(resolve,reject){
  3. setTimeout(function(){
  4. console.log("p1_2000");
  5. resolve()
  6. },3000)
  7. })
  8. }
  9. function p2(){
  10. return new Promise(function(resolve,reject){
  11. setTimeout(function(){
  12. console.log("p2_2000");
  13. resolve()
  14. },2000)
  15. })
  16. }
  17. console.log("start");
  18. p1();
  19. p2();
  20. console.log(end)
  21. //start
  22. //end
  23. //p2_2000
  24. //p1_3000

咱们想做的是让他按这个顺序执行下来咱们就要用到async、await

</>复制代码

  1. 看代码

</>复制代码

  1. function p1(){
  2. return new Promise(function(resolve,reject){
  3. setTimeout(function(){
  4. console.log("p1_3000");
  5. resolve()
  6. },3000)
  7. })
  8. }
  9. function p2(){
  10. return new Promise(function(resolve,reject){
  11. setTimeout(function(){
  12. console.log("p2_2000");
  13. resolve()
  14. },2000)
  15. })
  16. }
  17. //await 只能出现在异步函数里
  18. async function shi(){
  19. console.log("start")
  20. await p1();
  21. await p2();
  22. console.log("end")
  23. }
  24. p3=shi();
  25. p3.then(function(){
  26. console.log("结束")
  27. })

上边函数执行下来就是按照那个顺序下来的,大家记住await 只能出现在异步函数里!配套使用

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/84146.html

相关文章

  • JavaScript:体验异步优雅解决方案

    摘要:但是的的出现碉堡的新朋友,我们可以轻松写出同步风格的代码同时又拥有异步机制,可以说是目前最简单,最优雅,最佳的解决方案了。不敢说这一定是终极的解决方案,但确实是目前最优雅的解决方案 一、异步解决方案的进化史 JavaScript的异步操作一直是个麻烦事,所以不断有人提出它的各种解决方案。可以追溯到最早的回调函数(ajax老朋友),到Promise(不算新的朋友),再到ES6的Gener...

    happyfish 评论0 收藏0
  • Async/Await替代Promise6个理由

    摘要:是基于实现的,它不能用于普通的回调函数。忧虑对于,也许你有一些合理的怀疑它使得异步代码不再明显我们已经习惯了用回调函数或者来识别异步代码,我们可能需要花数个星期去习惯新的标志。 译者按: Node.js的异步编程方式有效提高了应用性能;然而回调地狱却让人望而生畏,Promise让我们告别回调函数,写出更优雅的异步代码;在实践过程中,却发现Promise并不完美;技术进步是无止境的,这时...

    tuomao 评论0 收藏0
  • 「大概可能也许是」目前 JavaScript 异步方案 async/await

    摘要:使用时也要注意范围和层级。服务端配置服务端使用,最简单的方式是通过。云引擎是推出的服务器端运行环境,支持和环境,功能强大而且目前免费,结合,使原本复杂的开发工作变得简单高效。目前也支持和海外节点,轻松满足你的业务需求。 构建一个应用程序总是会面对异步调用,不论是在 Web 前端界面,还是 Node.js 服务端都是如此,JavaScript 里面处理异步调用一直是非常恶心的一件事情。以...

    Scorpion 评论0 收藏0
  • async/await 异步应用常用场景

    摘要:下面将简单地描述一下一些日常常用场景加深对认识最普遍的异步操作就是请求我们也可以用来简单模拟异步请求。其中是必须的如果省略了程序就不能按预期得到结果。 前言 async/await 语法用看起来像写同步代码的方式来优雅地处理异步操作,但是我们也要明白一点,异步操作本来带有复杂性,像写同步代码的方式并不能降低本质上的复杂性,所以在处理上我们要更加谨慎, 稍有不慎就可能写出不是预期执行的代...

    ermaoL 评论0 收藏0
  • async/await 异步应用常用场景

    摘要:下面将简单地描述一下一些日常常用场景加深对认识最普遍的异步操作就是请求我们也可以用来简单模拟异步请求。其中是必须的如果省略了程序就不能按预期得到结果。 前言 async/await 语法用看起来像写同步代码的方式来优雅地处理异步操作,但是我们也要明白一点,异步操作本来带有复杂性,像写同步代码的方式并不能降低本质上的复杂性,所以在处理上我们要更加谨慎, 稍有不慎就可能写出不是预期执行的代...

    darkbug 评论0 收藏0

发表评论

0条评论

huhud

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<