【问题标题】:JavaScript .then methodJavaScript .then 方法
【发布时间】:2023-02-21 02:38:41
【问题描述】:

我希望在单击此代码中的按钮后打印 console.log("Hello")。

async function remove_tag(){
    let pr = new Promise(function(resolve, reject){
        function done(){
            let btn = document.getElementById("btn");
            function button(){
            let tag = document.getElementById("main_1");
            tag.remove();
            }
        
            btn.addEventListener("click", button)
            let msg = "done";
            return msg;
        }
        resolve(done());
    })
    let wait_promise = await pr;
    return wait_promise;
}

remove_tag()
.then((value)=>{
    console.log("hello")
})

我尝试了很多时间,但在我点击按钮之前打印了“Hello”。enter image description here

【问题讨论】:

  • 你根本不应该使用承诺。只需将点击事件监听器添加到按钮并做一些响应

标签: javascript es6-promise


【解决方案1】:

现在,您在 Promise 定义中立即调用 resolve,导致 Promise 立即解析。您需要在 button 函数中调用它,以便它在单击时运行。

async function remove_tag(){
    let pr = new Promise(function(resolve, reject) {
        let btn = document.getElementById("btn");
        function button(){
            let tag = document.getElementById("main_1");
            tag.remove();
            let msg = "done";
            resolve(msg);
        }
        btn.addEventListener("click", button);
    })
    let wait_promise = await pr;
    return wait_promise;
}

remove_tag()
.then((value)=>{
    console.log("hello");
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2016-04-09
    • 2015-02-01
    • 2017-11-03
    • 2021-08-04
    • 1970-01-01
    相关资源
    最近更新 更多