asynceventhandlersinlit-html
创始人
2024-09-21 02:30:54
0次

在 lit-html 中添加异步事件处理程序可以很方便地执行一些异步操作。但是,这也会导致一些问题,因为异步函数的返回值不会影响模板渲染。

为了解决这个问题,可以使用 lit-html 的 directive,即repeat、classMap、styleMap、live、guard等。

例如,使用 live directive可以使渲染函数等待 Promise 返回的值:

import {live} from 'lit-html/directives/live';

const handleClick = async (event) => { const result = await fetch('/data');

return result.json(); };

html ;

这里的 live directive 会使用 requestRender,在 Promise 返回结果后重新渲染值。 这种方式可以避免渲染出不正确的值。

另外,还可以使用 asyncState directive,它会等待异步函数执行完成并返回结果。

import {asyncState} from 'lit-html/directives/async-state';

const handleClick = async (event) => { const result = await fetch('/data');

return result.json(); };

html ;

在这个示例中,asyncState directive 会将 handleClick 函数返回的 Promise 转换为一个对象,其包含以下属性:‘data’(Promise 执行结果)、‘error’(如果 Promise 拒绝时返回),以及‘isLoading’(如果 Promise 还没有执行完成)。

通过在模板中使用(state) => html${state.data}``,可以将结果呈现为一个文本节点。

相关内容

热门资讯

一分钟了解!微乐自建房提升运势... 一分钟了解!微乐自建房提升运势(透视器),微乐挖坑果然是真的有透视挂方法1、操作简单,无需微乐自建房...
每日必备!微乐自建房辅助免费入... 每日必备!微乐自建房辅助免费入口(透视挂),微乐鞍山麻将原来是真的有透视挂技巧在进入微乐自建房辅助免...
玩家亲测!微乐安徽小程序辅助(... 玩家亲测!微乐安徽小程序辅助(透视器),微乐小程序麻将真是是真的有透视挂教程1、微乐安徽小程序辅助辅...
必备攻略!微乐小程序自建房透视... 必备攻略!微乐小程序自建房透视免费(作弊器),微乐划水麻将果然是真的有透视挂教程1、微乐小程序自建房...
如何分辨真伪!微乐麻辣自建房辅... 如何分辨真伪!微乐麻辣自建房辅助视频(辅助),微乐合肥红中麻将确实存在有透视挂app1、许多玩家不知...
玩家攻略!微乐小程序免费黑科技... 玩家攻略!微乐小程序免费黑科技(外挂),四川微乐麻将一贯真的有透视挂脚本1、玩家可以在微乐小程序免费...
一分钟教会你!微信小程序游戏辅... 一分钟教会你!微信小程序游戏辅助(透视挂),微乐延边麻将总是存在有透视挂脚本1、下载好微信小程序游戏...
我来教教你!微信微乐游戏辅助脚... 我来教教你!微信微乐游戏辅助脚本(作弊器),微乐福州麻将一直是有透视挂攻略1、微信微乐游戏辅助脚本透...
大家学习交流!微乐小程序破解(... 大家学习交流!微乐小程序破解(作弊器),微乐捉鸡麻将一直有透视挂脚本1、很好的工具软件,可以解锁游戏...
信息共享!微乐游戏小程序辅助器... 信息共享!微乐游戏小程序辅助器免费(外挂),微乐麻将小程序其实真的是有透视挂app1、首先打开微乐游...