zoukankan      html  css  js  c++  java
  • [Svelte 3] Use await block to wait for a promise and handle loading state in Svelte 3

    Most web applications have to deal with asynchronous data at some point.

    Svelte 3 apps are no different, luckily Svelte allows us to await the value of a promise directly in markup using await block.

    In this lesson we're going to learn how to use the await block to fetch the data from a Star Wars API and both display the data and handle loading state.

    // Before:
    
    <script>
      async function getRandomStarWarsCharacter() {
        const randomNumber = Math.floor(Math.random() * 10) + 1;
        const apiResponse = await fetch(
          `https://swapi.co/api/people/${randomNumber}/`
        );
    
        return await apiResponse.json();
      }
    
      let character;
      getRandomStarWarsCharacter().then(value => (character = value));
    </script>
    
    <h1>{!character ? 'Loading ...' : character.name}</h1> 
    // After:
    <script>
      async function getRandomStarWarsCharacter() {
        const randomNumber = Math.floor(Math.random() * 10) + 1;
        const apiResponse = await fetch(
          `https://swapi.co/api/people/${randomNumber}/`
        );
    
        return await apiResponse.json();
      }
    
      let promise = getRandomStarWarsCharacter();
    </script>
    
    <!-- <h1>{!character ? 'Loading ...' : character.name}</h1> -->
    
    {#await promise}
      <h1>Loading...</h1>
    {:then character}
      <h1>{character.name}</h1>
    {/await}
  • 相关阅读:
    C++ P1890 gcd区间
    C++ P1372 又是毕业季I
    C++ CF822A I'm bored with life
    C++ P4057 [Code+#1]晨跑
    C++ CF119A Epic Game
    关于树状数组的几点总结
    markdown语法
    portal开发"下拉框"“日期框”查询要怎么配置
    泛型总结--待续
    Actioncontext跟ServletActionContext的区别---未完待续
  • 原文地址:https://www.cnblogs.com/Answer1215/p/11631457.html
Copyright © 2011-2022 走看看