1.举两个个简单的例子

1.执行一个promise
2.await后面一定要跟promise
3.await一定是在一个async函数里面的
/解释第二遍/
1.async关键字可以将一个普通函数变为promise
2.await关键字可以获取promise的结果
3.await仅仅在async函数中有效
4.等待后面promise执行完毕才会执行后面的代码

1-1:

  1. async function getCat(){
  2. return "华语"
  3. }
  4. async function detail(){
  5. return "detail"
  6. }
  7. async function url(){
  8. return "url"
  9. }
  10. async function getRes(){
  11. var cat = await getCat();
  12. console.log(cat)
  13. var de = await detail();
  14. console.log(de)
  15. var l = await url();
  16. console.log(l)
  17. }
  18. getRes()

1-2:

  1. <script>
  2. /* 在函数前面加上async可以将一个普通函数变为promise */
  3. async function go(){
  4. return 1;
  5. }
  6. go().then(res=>{
  7. console.log(res)
  8. console.log(2)
  9. })
  10. /*
  11. await关键字1.只能在async函数中使用 2.后面只能是promise
  12. 作用:等待后面promise执行完毕才会执行后面的代码
  13. */
  14. async function getData(){
  15. var data = await go();
  16. console.log(data)
  17. }
  18. getData()
  19. //打印1 2 1
  20. </script>

2.封装,运用在获取接口中

  1. <script>
  2. async function getRes(){
  3. var cat = await http('top/playlist',{cat:"华语"})
  4. var id =cat.playlists[0].id;
  5. var detail = await http('playlist/detail',{id})
  6. var url = await http('song/url',{id:detail.playlist.trackIds[0].id});
  7. console.log(url)
  8. }
  9. getRes()
  10. </script>
  11. //封装代码
  12. var baseUrl = "https://music.aityp.com/"
  13. function http(url,data){
  14. return new Promise((resolve,reject)=>{
  15. $.ajax({
  16. url:baseUrl+url,
  17. type:"get",
  18. data,
  19. success:res=>{
  20. resolve(res)
  21. },
  22. error:err=>{
  23. reject(err)
  24. }
  25. })
  26. })
  27. }
  28. // function getCat(){
  29. // return http('top/playlist',{cat:"华语"})
  30. // }

3.关键字嵌套了

  1. <script>
  2. /* 1.就是跟在她后面的promise执行完毕之后,才会执行下面的代码 */
  3. async function go(){
  4. return "go"
  5. }
  6. var arr = ['html','css','js','vue']
  7. async function test(){
  8. console.log(1);
  9. arr.forEach(async item=>{
  10. var data = await go();
  11. console.log(data)
  12. })
  13. console.log(2)
  14. }
  15. test()
  16. </script>