概述
前言
async-awai
t是promise
和generato
r的语法糖。只是为了让我们书写代码时更加流畅,当然也增强了代码的可读性。简单来说:async-await
是建立在 promise
机制之上的,并不能取代其地位。
基本语法
let awaitPromise = new Promise((resolve,reject)=>{
…
resolve(“successful”);
})
async function basicDemo() {
let result = await Math.random();
let asyncResult = await awaitPromise;
console.log(result);
return asyncResult
}
basicDemo().then((value)=>{
console.log(value);
});
// successful
注意事项及特性
1、直接获取Promise返回值
let asyncResult = await awaitPromise;
asyncResult
不用.then()
操作就可以获取resolve()
的值
2、只有当async函数中有return
的时候,才会返回Promise对象
,这时.then()
才有效果
3、await
命令后面是一个Promise对象
,也可以是原始类型
的值
当await
函数是数值、字符串和布尔值等原始类型时,但这时等同于同步操作。
async function asyncBasic() {
let asnum = await setTimeout(()=>{
num++;
},5000)
await num++;
return num;
}
这种写法setTimeout是不起作用的
4、当存在多个await
时,只要有一个await后的Promise变成reject
,则后面的await
将不再执行。
可以使用catch
进行错误的捕获;或者把await命令放在try...catch
代码块中。
async function basicDemo() {
try{
let result = await Math.random();
let asyncResult = await awaitPromise;
console.log(result);
return asyncResult
}
catch(err){
console.lot(err);
}
}
async-await函数最常见用法
使用多个Promise异步操作完成后进行操作
var promise01 = new Promise(function(resolve,reject){
...
resolve();
})
var promise02 = new Promise(function(resolve,reject){
...
resolve();
})
var promise03 = new Promise(function(resolve,reject){
...
resolve();
})
Promise写法
let allPromise = new Promise((resolce,reject)=>{
promise01.then(function(
return promise02
){}).then(function(){
return promise03
}).then(function(){
resolve(“success”);
})
})
allPromise.then(()=>{
})
async-await函数写法
async function asyncPromise (){
await promise01;
await promise02;
await promise03;
return “success”
}
asyncPromise().then(()=>{
});
最后
以上就是醉熏康乃馨为你收集整理的ES6 Async/Await函数的全部内容,希望文章能够帮你解决ES6 Async/Await函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复