三句话总结 async await 用法

2019-06-14 admin

公司有个项目,类似用户自定义试卷的功能,很多表单需要验证,但是又要根据配置自动生成,所以,每个输入框都是一个组件,验证是异步,如果全部都用Promise看起来也很头大,各方查阅,总结如下。

三句话看懂 async/await

1 async 函数执行结果都是Promise

clipboard.png

async function HiAsync() {
 return "hi";
}
async function HelloAsync() {
 return Promise.resolve('hello')
}

console.log(HiAsync())
console.log(HelloAsync())

HiAsync().then(r => {
    console.log(r) // 'hi'
})
HelloAsync().then(r => {
    console.log(r)  // 'hello'
})

2 await 总能等到结果

(即便是嵌套多层的异步)

clipboard.png

function getSomething() {
    return "a";
}

async function testAsync() {
    return new Promise((re, rj) => {
        setTimeout(() => { re('b') }, 500)
    })
}
async function deepAsync() {
    let p2 = new Promise((re, rj) => {
        setTimeout(() => { re('c') }, 10)
    })
    return new Promise((re, rj) => {
        setTimeout(() => { re(p2) }, 500)
    })
}

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

3 await 的使用时 必须在async 函数中

easy? 表述可还清楚?有遗漏请指正。

[转载]原文链接:https://segmentfault.com/a/1190000019475599

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。

转载请注明:文章转载自 JavaScript中文网 [https://www.javascriptcn.com]

本文地址:https://www.javascriptcn.com/read-67267.html

文章标题:三句话总结 async await 用法

相关文章
H5页面实现下载文件(apk、txt等)的三种方式
需求描述 接到的原始需求是这样的,有一个H5页面,页面中有个“点击下载”的按钮,点击之后,完成下载特定的apk。 大概是下面这样的👇: 需求分析 接到需求的时候我偷乐了一下,这个H5页面最大的优点是不在微信中使用(微信好坑,各种限制,基...
2018-07-18
ES6笔试面试题总结
收集整理的一些ES6的笔试面试题,出处在最底部标明 把以下代码使用两种方法,来依次输出0到9? var funcs = [] for (var i = 0; i < 10; i++) { funcs.push(functi...
2018-04-22
优化RequireJS项目的相关技巧总结
本文将演示如何合并与压缩一个基于RequireJS的项目。本文中将用到苦干个工具,这其中就包括Node.js。 因此,如果你手头上还没有Node.js可以点击此处下载一个。 动机 关于RequireJS已经有很多文章介绍过了。这个工具可以将...
2017-03-27
nodejs的压缩文件模块archiver用法示例
本文实例讲述了nodejs的压缩文件模块archiver用法。分享给大家供大家参考,具体如下: 发现了个更好用的 zip-local https://www.npmjs.com/package/zip-local var zipper = ...
2017-03-06
JavaScript中String.prototype用法实例
本文实例讲述了JavaScript中String.prototype用法。分享给大家供大家参考。具体如下: // 返回字符的长度,一个中文算2个 String.prototype.ChineseLength=functi...
2017-03-23
JavaScript数据类型判定的总结笔记
用typeof 来检测数据类型 Javascript自带两套类型:基本数据类型(undefined,string,null,boolean,function,object)和对象类型。 但是如果尝试用typeof 来检测对象类型都一律返回&...
2017-03-27
JavaScript使用pop方法移除数组最后一个元素用法实例
本文实例讲述了JavaScript使用pop方法移除数组最后一个元素的用法。分享给大家供大家参考。具体如下: 下面的代码演示了JS数组的pop方法,可以用来移除数组的最后一个元素,实际上就是把数组当成堆栈使用 <!DOCTYPE ht...
2017-03-22
javascript中SetInterval与setTimeout的定时器用法
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。也就是说setTimeout()只执行一次,setInt...
2017-03-29
js简单工厂模式用法实例
本文实例讲述了js简单工厂模式用法。分享给大家供大家参考。具体实现方法如下: <!DOCTYPE html> <html> <head> <title>简单工厂模式</titl...
2017-03-27
深入浅出分析javaScript中this用法
本文实例讲述了javaScript中this用法。分享给大家供大家参考。具体分析如下: 之前学javascript的时候总搞不清this,这个this不像java里的this那么好理解。我后来也是看了许多别人写的文章,才理解过来的。现在把别...
2017-03-23
回到顶部