调用async function 返回一个 promise
    await一定要在有async的函数的作用域里面使用
    await 基于 promise 函数
    await会停在当前行代码,等到promise完成并返回结果值
    await使得异步操作更像是同步代码
    async和await的使用减少了.then()的调用
    添加错误处理
    可以使用 try catch 语句
    也可以使用.then()后面接.catch()

    promise和async、await的配合使用:代码示例

    1. function gamble(bet){
    2. return new Promise((resolve,reject)=>{
    3. setTimeout(()=>{
    4. let n = Math.floor(Math.random()*6)+1;
    5. if(n>3){
    6. if(bet==='大'){
    7. resolve(n)
    8. }else{
    9. reject(n)
    10. }
    11. }else{
    12. if(bet==='大'){
    13. reject(n)
    14. }else{
    15. resolve(n)
    16. }
    17. }
    18. },1000);
    19. });
    20. }
    21. // gamble('大').then(
    22. // value=>{
    23. // console.log('你赢了')
    24. // console.log(value);},
    25. // reason=>{
    26. // console.log('你输了');
    27. // console.log(reason);
    28. // })
    29. async function test(){
    30. try{
    31. let n = await gamble('大')
    32. console.log(n)
    33. console.log('赚大了')
    34. }
    35. catch(error){
    36. console.log(error)
    37. console.log('输惨了')
    38. }
    39. }
    40. test()

    Promise和Promise.all和async、await配合使用:代码示例

    1. function gamble(bet) {
    2. return new Promise((resolve, reject) => {
    3. setTimeout(() => {
    4. let n = Math.floor(Math.random() * 6) + 1;
    5. if (n > 3) {
    6. if (bet === "大") {
    7. resolve(n);
    8. } else {
    9. reject(n);
    10. }
    11. } else {
    12. if (bet === "大") {
    13. reject(n);
    14. } else {
    15. resolve(n);
    16. }
    17. }
    18. }, 1000);
    19. });
    20. }
    21. let resultObj = Promise.all([gamble("大"), gamble("大")]);
    22. console.log(resultObj);
    23. // resultObj.then(
    24. // value=>{
    25. // console.log('你赢了')
    26. // console.log(value);},
    27. // reason=>{
    28. // console.log('你输了');
    29. // console.log(reason);
    30. // }
    31. // )
    32. async function test() {
    33. try {
    34. let n = await resultObj;
    35. console.log(n);
    36. console.log("血赚");
    37. } catch (error) {
    38. console.log(error);
    39. console.log("血亏");
    40. }
    41. }
    42. test();