博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
koa2-2
阅读量:4592 次
发布时间:2019-06-09

本文共 1318 字,大约阅读时间需要 4 分钟。

async/await的使用方法

 什么是async和await

  你要想理解语法,可以先从两个单词的基本意思来进行了解.async是异步的简写,而await可以堪称async wait的简写。明白了两个单词,就很好理解了async是声明一个方法是异步的,await是等待异步方法完成。注意的是await必须在async方法中才可以使用因为await访问本身就会造成程序停止堵塞,所以必须在异步方法中才可以使用。

  sync到底起什么作用?

  async是让方法变成异步,这个很好理解,关键是他的返回值是什么?我们得到后如何处理?

  根据以前的经验,我们希望用return直接返回async函数的值,但是如果真是这样,还有await什么作用,我们写段代码测试一下。

async function testAsync(){    return 'Hello async';}const result = testAsync();console.log(result);

  在终端里用node执行这段代码,你会发现输出了Promise { ‘Hello async’ },这时候会发现它返回的是Promise。

PS E:\code\BXShop> node test.jsPromise { 'Hello async' }

  await在等什么?

  await一般在等待async方法执行完毕,但是其实await等待的只是一个表达式,这个表达式在官方文档里说的是Promise对象,可是它也可以接受普通值。我们写一段代码来验证一下这个结果。在程序中我们有用async的方法,也有普通的方法。最后在控制台输出时,你会发现都可以直接输出。

function getSomething(){    return 'something';} async function testAsync(){    return 'Hello async';} async function test(){    const v1=await getSomething();    const v2=await testAsync();    console.log(v1,v2);} test();

  sync/await同时使用

  通过前面两个例子已经分别了解async和await,我们来作个虚假的例子,看一下等待问题。这只是一个虚假的,实际项目中多是去后台请求数据,等数据回来后进行执行。

function takeLongTime() {    return new Promise(resolve => {        setTimeout(() => resolve("long_time_value"), 1000);    });} async function test() {    const v = await takeLongTime();    console.log(v);} test();

 

转载于:https://www.cnblogs.com/xiaofandegeng/p/9108007.html

你可能感兴趣的文章
pb开发的客户端,使用oracle 9i客户端 提示oci.dll could not be loaded
查看>>
wordpress调用指定post type文章怎么操作
查看>>
magento开发手册之目录结构
查看>>
换个红圈1微信头像恶搞一下好友
查看>>
javascript学习_廖大_20170218
查看>>
bzoj2038: [2009国家集训队]小Z的袜子(hose) 莫队
查看>>
火车头采集基本使用
查看>>
MYSQL中插入数据以及修改数据的部分方法
查看>>
unity中遍历动画得到动画名字和动画数量
查看>>
调整WebLogic的时间
查看>>
Linux学习笔记总结--配置iptables防火墙
查看>>
win10 安装mysql
查看>>
SQL文 Update From 写法
查看>>
pyc文件的本质
查看>>
洛谷 - P2602 - 数字计数 - 数位dp
查看>>
android 环境配置 与 运行错误
查看>>
打电话的代码
查看>>
C++ STL stack(栈)
查看>>
实验3观后感
查看>>
用js采集网页数据并插入数据库最快的方法
查看>>