Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript lit-html中的异步事件处理程序_Javascript_Typescript_Kotlin_Lit Html_Kotlin Js - Fatal编程技术网

Javascript lit-html中的异步事件处理程序

Javascript lit-html中的异步事件处理程序,javascript,typescript,kotlin,lit-html,kotlin-js,Javascript,Typescript,Kotlin,Lit Html,Kotlin Js,有没有一种方法可以在lit html中使用async事件处理程序 在提交表单以创建新用户时,会触发此提交事件,但我还希望在添加新用户后重新加载用户列表 constructor(container: Element, state: app.state.DashboardState) { this.container = container; this.state = state; this.state.usersCreateState.ch

有没有一种方法可以在lit html中使用
async
事件处理程序

在提交表单以创建新用户时,会触发此提交事件,但我还希望在添加新用户后重新加载用户列表

    constructor(container: Element, state: app.state.DashboardState) {
        this.container = container;
        this.state = state;

        this.state.usersCreateState.changed = () => render(html`
            <form
                @submit="${e => this.submit(e)}"
                class="stack display:flex flex-grow:1">
使
submit(e)
异步时,submit事件不再触发,这意味着preventDefault不会触发,而是在控制台中转储此错误时尝试发布到当前URL:

VM4535 user.ecff3a6d.js:20420 Uncaught ReferenceError: regeneratorRuntime is not defined
    at UsersCreate.submit (VM4535 user.ecff3a6d.js:20420)
    at HTMLFormElement.<anonymous> (VM4535 user.ecff3a6d.js:20408)
    at EventPart.handleEvent (VM4535 user.ecff3a6d.js:19355)
    at HTMLFormElement.EventPart.__boundHandleEvent (VM4535 user.ecff3a6d.js:19317)
submit @ VM4535 user.ecff3a6d.js:20420
(anonymous) @ VM4535 user.ecff3a6d.js:20408
handleEvent @ VM4535 user.ecff3a6d.js:19355
EventPart.__boundHandleEvent @ VM4535 user.ecff3a6d.js:19317
它生成包含kotlin.js.Promise的类型脚本

submit(): kotlin.js.Promise<io.jvaas.state.vo.ResultVO>;

您的问题似乎与事件处理程序无关。看起来您正在编译到一个旧的JS语言版本-至少在ES2017之前添加了异步函数(async/await)-并且您没有加载运行转换的异步函数所需的库(再生器运行时)

您需要加载再生器:


如果您使用Babel进行编译,此选项可能会有所帮助:

我使用的是Parcel1,也许我应该尝试升级到Parcel2(parceljs.org)
    @JsName("submit")
    fun submit(): Promise<ResultVO> {
submit(): kotlin.js.Promise<io.jvaas.state.vo.ResultVO>;
    submit(e) {
        e.preventDefault();
        document.querySelector(":focus")?.dispatchEvent(new Event("blur"));
        this.state.usersCreateState.create.submit().then(() => {
            this.state.usersListState.list.submit();
        })
    }