公司有个项目,类似用户自定义试卷试题的功能,很多表单需要验证,但是又要根据配置自动生成,所以,每个输入框都是一个组件,验证是异步,如果全部都用Promise看起来也很头大,各方查阅,总结如下。
三句话看懂 async/await
1 async 函数执行结果都是Promise
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 总能等到结果
(即便是嵌套多层的异步)
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? 表述可还清楚?有遗漏请指正。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。