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

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

    {/await}

    这基本上就是 #await 块在 svelte 中的工作原理。它根据承诺的状态显示不同的内容:待处理时的加载指示器、解决时的结果以及拒绝时的错误消息。

    但是假设我希望在承诺已解决或拒绝时运行某个函数(如祝酒)。


    当 #await 块解析或拒绝时运行(触发)函数

    以下是在 Promise 解决或拒绝时运行特定函数的方法:

    {#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. 方法一(返回空字符串):

    在此方法中,我们将确保从函数中返回空字符串。

    {#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. 方法二(用CSS隐藏UI中函数返回的文本。)

    在此方法中,我们将在 UI 中隐藏功能块,因此返回的文本在用户的视线中隐藏。

    {#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 的方法将确保返回的文本隐藏在视线之外。

    快乐黑客

    PS:需要雇用 SvelteKit 开发人员吗?联系我

    ","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) 中解析时运行函数

    发布于2024-11-18
    浏览:360

    跳至内容:

    • 关于 svelte 中的 #await 块
    • 当 #await 块解析或拒绝时运行(触发)函数
    • 修复浏览器中显示的未定义或任何返回的文本
      • 1. 方法一(返回空字符串):
      • 2. 方法二(用CSS隐藏UI中函数返回的文本。)
        • PS:需要雇用 SvelteKit 开发人员吗?联系我

    关于 svelte 中的 #await 块

    svelte中的#await块对于处理异步数据非常方便:

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

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

    {/await}

    这基本上就是 #await 块在 svelte 中的工作原理。它根据承诺的状态显示不同的内容:待处理时的加载指示器、解决时的结果以及拒绝时的错误消息。

    但是假设我希望在承诺已解决或拒绝时运行某个函数(如祝酒)。


    当 #await 块解析或拒绝时运行(触发)函数

    以下是在 Promise 解决或拒绝时运行特定函数的方法:

    
    
    {#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 在承诺解决时调用,并以结果数作为参数。
    • 如果 Promise 被拒绝,则会触发 showError,显示自定义错误消息。

    还有一件事...

    修复浏览器中显示的未定义或任何返回的文本

    当这些函数运行时,返回的任何文本都会显示在浏览器中,因为这是一种解决方法。我们使用的语法通常是为了在浏览器中显示返回的字符串/数字。即使不返回任何内容也会返回默认的未定义。这个字符串(通常没有意义)将显示给最终用户。像这样的东西:
    Running a Function When an #await Block resolves in Svelte(Kit)

    对最终用户来说毫无意义?‍♂️?‍♀️

    因此,请确保返回空字符串,或将函数包装在隐藏块中:

    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. 方法二(用CSS隐藏UI中函数返回的文本。)

    在此方法中,我们将在 UI 中隐藏功能块,因此返回的文本在用户的视线中隐藏。

    
    
    {#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如有侵犯,请联系[email protected]删除
    最新教程 更多>
    • 除了“if”语句之外:还有哪些地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
      除了“if”语句之外:还有哪些地方可以在不进行强制转换的情况下使用具有显式“bool”转换的类型?
      无需强制转换即可上下文转换为 bool您的类定义了对 bool 的显式转换,使您能够在条件语句中直接使用其实例“t”。然而,这种显式转换提出了一个问题:“t”在哪里可以在不进行强制转换的情况下用作 bool?上下文转换场景C 标准指定了四种值可以根据上下文转换为 bool 的主要场景:语句:if、w...
      编程 发布于2024-11-18
    • 如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
      如何修复 macOS 上 Django 中的“配置不正确:加载 MySQLdb 模块时出错”?
      MySQL配置不正确:相对路径的问题在Django中运行python manage.py runserver时,可能会遇到以下错误:ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Python/2.7/site-...
      编程 发布于2024-11-18
    • Bootstrap 4 Beta 中的列偏移发生了什么?
      Bootstrap 4 Beta 中的列偏移发生了什么?
      Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
      编程 发布于2024-11-18
    • 如何在 PHP 中组合两个关联数组,同时保留唯一 ID 并处理重复名称?
      如何在 PHP 中组合两个关联数组,同时保留唯一 ID 并处理重复名称?
      在 PHP 中组合关联数组在 PHP 中,将两个关联数组组合成一个数组是一项常见任务。考虑以下请求:问题描述:提供的代码定义了两个关联数组,$array1 和 $array2。目标是创建一个新数组 $array3,它合并两个数组中的所有键值对。 此外,提供的数组具有唯一的 ID,而名称可能重合。要求...
      编程 发布于2024-11-18
    • 大批
      大批
      方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
      编程 发布于2024-11-18
    • 如何从针对 Go 二进制文件的集成测试中捕获代码覆盖率?
      如何从针对 Go 二进制文件的集成测试中捕获代码覆盖率?
      从 Go 二进制文件捕获代码覆盖率运行单元测试时,捕获代码覆盖率非常简单。然而,在针对二进制文件本身的集成测试期间收集覆盖率指标可能具有挑战性。有没有办法克服这个障碍?集成测试覆盖率的需要集成测试提供了比单独的单元测试更全面的代码覆盖率视图。通过针对真实世界的输入运行二进制文件,我们可以评估代码在各...
      编程 发布于2024-11-18
    • 尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
      尽管代码有效,为什么 POST 请求无法捕获 PHP 中的输入?
      解决 PHP 中的 POST 请求故障在提供的代码片段中:action=''而不是:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"检查 $_POST数组:表单提交后使用 var_dump 检查 $_POST 数...
      编程 发布于2024-11-18
    • 如何从终端将数据库导入MySQL?
      如何从终端将数据库导入MySQL?
      从终端导入MySQL数据库使用终端将数据库导入MySQL可以提供一种便捷的数据管理方式。要有效地执行此任务,请按照下列步骤操作:使用命令行,您可以访问 MySQL 提示符。这样做的语法是:mysql -u username -p database_name输入您的用户名、密码和目标数据库名称来代替占...
      编程 发布于2024-11-18
    • 如何使用“index”函数迭代 HTML 模板中的并行数组?
      如何使用“index”函数迭代 HTML 模板中的并行数组?
      如何使用索引迭代 HTML 模板中的并行数组本文解决了迭代并行数组(大小相等)的困难在 HTML 模板中。具体来说,如何利用范围块内的索引函数来实现此目的。索引函数是预定义的全局模板函数,它根据提供的索引从映射、切片或数组中检索项目。该函数允许在模板内的数据结构内进行复杂的导航。在迭代并行数组的上下...
      编程 发布于2024-11-18
    • 迭代 Python 列表时,为什么应该避免删除项目?
      迭代 Python 列表时,为什么应该避免删除项目?
      Python 列表:迭代期间删除项目的陷阱迭代 Python 列表,同时删除项目可能会导致意外行为。一个值得注意的例子如下:letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'] for i in letters:...
      编程 发布于2024-11-18
    • 如何消除 CSS 中的双边框:轮廓与负边距?
      如何消除 CSS 中的双边框:轮廓与负边距?
      防止 CSS 中的双边框许多 Web 开发人员在将元素与边框并排设置样式时遇到一个常见问题。由于边框的性质,每个元素都有自己的边框,因此元素相交处可能会出现双边框。这可能不雅观并且会干扰所需的设计。要解决此问题,有两种常见的解决方案:使用轮廓而不是边框​​,或应用负边距。使用轮廓轮廓与边框类似,但仅...
      编程 发布于2024-11-18
    • 如何仅使用 CSS 将图像嵌入 Div 元素内?
      如何仅使用 CSS 将图像嵌入 Div 元素内?
      使用 CSS 将图像集成到 Div 中:有效的解决方案在 Web 开发中,通常需要将图像放置在 div 元素中。虽然使用背景图像是一种常见的方法,但它限制了 div 符合图像大小的能力。这就提出了一个问题:我们如何使用 CSS 创建与 HTML 结构 等效的内容?为了实现这一点,我们利用内容属性将...
      编程 发布于2024-11-18
    • 如何向 JavaScript 函数传递可变数量的参数?
      如何向 JavaScript 函数传递可变数量的参数?
      向 JavaScript 函数传递可变数量的参数JavaScript 在向函数传递参数方面提供了灵活性,包括从数组发送可变数量的参数的能力。通过参数实现变量 Arity与 Python 一样,JavaScript 有一个特殊的参数对象,它表示传递给函数的所有参数。该对象包含每个参数作为可索引属性。例...
      编程 发布于2024-11-18
    • 为什么我无法使用扩展内容脚本将 CSS 注入网页?
      为什么我无法使用扩展内容脚本将 CSS 注入网页?
      扩展内容脚本中的 CSS 注入问题尽管在清单中定义了 CSS 注入,您的 CSS 文件在网页中仍然不存在。以下是可能的原因和解决方案:原因: CSS 规则冲突样式表已注入,但由于其他样式覆盖其规则而未应用。 解决方案:增加CSS特异性: 向您的 CSS 规则添加更具体的选择器。使用 "!i...
      编程 发布于2024-11-18
    • 释放你的 Python 能力:一个对独特字符进行排序的项目
      释放你的 Python 能力:一个对独特字符进行排序的项目
      您准备好踏上迷人的 Python 编程之旅了吗? LabEx.io“项目:删除重复项”课程就是您的最佳选择,您将在其中深入了解数据清理和预处理的世界。这种基于项目的学习体验将使您具备从给定字符串中删除重复字符并按升序输出处理后的字符串的技能 - 对于任何有抱负的 Python 开发人员来说,这都是一...
      编程 发布于2024-11-18

    免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

    Copyright© 2022 湘ICP备2022001581号-3