{#await data.myPromise}{:then results}{#each results as result}
  • {result}
  • {/each}{:catch error}

    {error?.message ?? \\\"Something went wrong\\\"}

    {/await}

    По сути, именно так работает блок #await в svelte. Он отображает различное содержимое в зависимости от состояния обещания: индикатор загрузки при ожидании, результаты при разрешении и сообщение об ошибке в случае отклонения.

    Но допустим, я хочу, чтобы определенная функция запускалась, когда обещание было выполнено или отклонено (например, тост).


    Запустите (запустите) функцию, когда блок #await разрешается или отклоняется.

    Вот как вы можете запускать определенные функции, когда обещание разрешается или отклоняется:

    {#await data.myPromise}{:then results}{showSuccess(results.length)}  {#each results as result}
  • {result}
  • {/each}{:catch error}{showError(error.message)}

    {error?.message ?? \\\"Something went wrong\\\"}

    {/await}

    Теперь наша функция будет запускаться всякий раз, когда будет достигнут блок кода.


    И еще кое-что...

    Исправить неопределенный или любой возвращенный текст, отображаемый в браузере.

    Когда эти функции выполняются, любой возвращаемый текст будет отображаться в браузере, потому что это своего рода обходной путь. Синтаксис, который мы использовали, обычно предназначен для отображения возвращаемых строк/числа в браузере. Даже возврат ничего не вернет неопределенное значение по умолчанию. И эта строка (которая обычно не имеет смысла) будет отображаться конечному пользователю. Что-то вроде этого:
    \\\"Running

    Не имеет смысла для конечного пользователя ?‍♂️?‍♀️

    Поэтому обязательно возвращайте пустые строки или оберните функцию в скрытый блок:

    1. Метод 1 (возврат пустых строк):

    В этом методе мы обязательно вернем пустые строки из наших функций.

    {#await data.myPromise}  {:then results}{showSuccess(results.length)} {#each results as result}
  • {result}
  • {/each}{:catch error}{showError(error.message)}

    {error?.message ?? \\\"Something went wrong\\\"}

    {/await}

    Это обеспечит возврат пустых строк.

    --- Или ---

    2. Метод 2 (Скройте возвращаемый текст из функции в пользовательском интерфейсе с помощью CSS.)

    В этом методе вместо этого мы скроем функциональный блок в пользовательском интерфейсе, поэтому возвращаемый текст будет скрыт от глаз пользователя.

    {#await data.myPromise}  {:then results}
    {showSuccess(results.length)}
    {#each results as result}
  • {result}
  • {/each}{:catch error}
    {showError(error.message)}

    {error?.message ?? \\\"Something went wrong\\\"}

    {/await}

    Этот метод на основе CSS гарантирует, что возвращаемый текст будет скрыт от глаз.

    HappyHacking

    PS: Вам нужно использовать SvelteKit Dev? Свяжитесь со мной

    ","image":"http://www.luping.net/uploads/20241118/1731929413673b254564c1a.png","datePublished":"2024-11-18T20:21:13+08:00","dateModified":"2024-11-18T20:21:13+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
    «Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»

    Запуск функции при разрешении блока #await в Svelte (Kit)

    Опубликовано 18 ноября 2024 г.
    Просматривать:517

    Перейти к содержимому:

    • О блоке #await в svelte
    • Запустить (запустить) функцию, когда блок #await разрешается или отклоняется
    • Исправить неопределенный или любой возвращенный текст, отображаемый в браузере.
      • 1. Метод 1 (возврат пустых строк):
      • 2. Метод 2 (Скройте возвращаемый текст из функции в пользовательском интерфейсе с помощью CSS.)
        • PS: Хотите нанять разработчика SvelteKit? Свяжитесь со мной

    О блоке #await в svelte

    Блок #await в svelte очень удобен для обработки асинхронных данных:

    
    
    {#await data.myPromise}
    
    
    
    {:then results}
    
    {#each results as result}
    
  • {result}
  • {/each} {:catch error}

    {error?.message ?? "Something went wrong"}

    {/await}

    По сути, именно так работает блок #await в svelte. Он отображает различное содержимое в зависимости от состояния обещания: индикатор загрузки при ожидании, результаты при разрешении и сообщение об ошибке в случае отклонения.

    Но допустим, я хочу, чтобы определенная функция запускалась, когда обещание было выполнено или отклонено (например, тост).


    Запустите (запустите) функцию, когда блок #await разрешается или отклоняется.

    Вот как вы можете запускать определенные функции, когда обещание разрешается или отклоняется:

    
    
    {#await data.myPromise}
    
    
    
    {:then results}
    
    {showSuccess(results.length)}
    
      
    {#each results as result}
    
  • {result}
  • {/each} {:catch error} {showError(error.message)}

    {error?.message ?? "Something went wrong"}

    {/await}

    Теперь наша функция будет запускаться всякий раз, когда будет достигнут блок кода.

    • showSuccess вызывается, когда обещание разрешается, с количеством результатов в качестве аргумента.
    • showError срабатывает, если обещание отклоняется, и отображается специальное сообщение об ошибке.

    И еще кое-что...

    Исправить неопределенный или любой возвращенный текст, отображаемый в браузере.

    Когда эти функции выполняются, любой возвращаемый текст будет отображаться в браузере, потому что это своего рода обходной путь. Синтаксис, который мы использовали, обычно предназначен для отображения возвращаемых строк/числа в браузере. Даже возврат ничего не вернет неопределенное значение по умолчанию. И эта строка (которая обычно не имеет смысла) будет отображаться конечному пользователю. Что-то вроде этого:
    Running a Function When an #await Block resolves in Svelte(Kit)

    Не имеет смысла для конечного пользователя ?‍♂️?‍♀️

    Поэтому обязательно возвращайте пустые строки или оберните функцию в скрытый блок:

    1. Метод 1 (возврат пустых строк):

    В этом методе мы обязательно вернем пустые строки из наших функций.

    
    
    {#await data.myPromise}
      
    
    
    {:then results}
    
    {showSuccess(results.length)} 
    
    
    {#each results as result}
    
  • {result}
  • {/each} {:catch error} {showError(error.message)}

    {error?.message ?? "Something went wrong"}

    {/await}

    Это обеспечит возврат пустых строк.

    --- Или ---

    2. Метод 2 (Скройте возвращаемый текст из функции в пользовательском интерфейсе с помощью CSS.)

    В этом методе вместо этого мы скроем функциональный блок в пользовательском интерфейсе, поэтому возвращаемый текст будет скрыт от глаз пользователя.

    
    
    {#await data.myPromise}
      
    
    
    {:then results}
    
    
    
    {#each results as result}
    
  • {result}
  • {/each} {:catch error}
    Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/digitaldrreamer/running-a-function-when-an-await-block-resolves-in-sveltekit-11ec?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с Study_golang@163 .com, чтобы удалить его
    Последний учебник Более>

    Изучайте китайский

    Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

    Copyright© 2022 湘ICP备2022001581号-3