1、await关键字只能在async函数使用,不能在普通函数中使用
2、await 相当于then,获取获取promise—resolve的结果

  1. <script>
  2. /* await--async可以将异步变成同步代码 */
  3. var url = 'http://47.108.197.28:3000/top/playlist';
  4. async function show(){
  5. var res = await $.ajax({url});
  6. var id = res.playlists[0].id
  7. var url02 = `http://47.108.197.28:3000/playlist/detail?id=${id}`;
  8. var detail = await $.ajax({url:url02});
  9. console.log(detail)
  10. }
  11. show();
  12. </script>
  1. <script>
  2. /*
  3. 1、await关键字只能在async函数使用,不能在普通函数中使用
  4. 2、await 相当于then,获取获取promise--resolve的结果
  5. */
  6. async function show(){
  7. console.log("start");
  8. var p = await go();
  9. console.log(p);
  10. console.log("end")
  11. }
  12. async function go(){
  13. return "mid"
  14. }
  15. show();
  16. </script>

image.png

例子

await
1、相当于执行了promise的then函数
2、await后面不一定跟promise
3、await阻塞函数的执行,优先执行同步的代码再去之后await执行完毕之后的内容

  1. <script>
  2. async function show(){
  3. console.log("start");
  4. await mid();
  5. console.log("end")
  6. }
  7. async function mid(){
  8. console.log("mid");
  9. }
  10. show();
  11. console.log("a1");
  12. /* */
  13. </script>

image.png

await阻塞函数的执行

  1. <script>
  2. async function a1(){
  3. console.log("a1");
  4. await a2();
  5. console.log("end")
  6. }
  7. async function a2(){
  8. console.log("a2");
  9. }
  10. a1();
  11. console.log("a3");
  12. Promise.resolve().then(()=>{
  13. console.log("a4")
  14. })
  15. /*
  16. a1
  17. a2
  18. a3
  19. end
  20. a4
  21. */
  22. </script>