Javascript 如何用承诺占领点击事件?

Javascript 如何用承诺占领点击事件?,javascript,promise,callback,es6-promise,Javascript,Promise,Callback,Es6 Promise,我正在尝试在承诺内使用click事件,当按钮按下一次时,一切正常,但如果我想多次按下按钮,事件将不再工作 我该如何通过承诺来解决这个问题,还是应该在这些情况下使用回调? 多谢各位 add() { return new Promise((resolve, reject) => { if ( rowsTable.length == 0) reject("add fail data:", rowsTable.length

我正在尝试在承诺内使用click事件,当按钮按下一次时,一切正常,但如果我想多次按下按钮,事件将不再工作

我该如何通过承诺来解决这个问题,还是应该在这些情况下使用回调? 多谢各位

add() {
      
        return new Promise((resolve, reject) => {
            if ( rowsTable.length == 0) reject("add fail data:",  rowsTable.length);
            else {
                for (let i = 0; i <  rowsTable.length; i++) {

                  {
                        document.getElementById("add_button").addEventListener( "click", function () {
                             
                            resolve(rowsTable[i]);
                        }, {once: false});
                   
                }
            }
        });
}
add(){
返回新承诺((解决、拒绝)=>{
如果(rowsTable.length==0)拒绝(“添加失败数据:”,rowsTable.length);
否则{
for(设i=0;i
承诺是为了等待将来发生的事情,而不是为了多项事情

在大多数情况下,只使用回调就可以了


如果您有复杂的需求,希望有一个类似于promise的对象,您可以传递该对象,并允许多个其他函数订阅,然后查看可观察的对象(例如通过与承诺类似,只是设计用于处理事件流而不是单个事件。

为什么您需要为事件侦听器提供承诺。很简单,一旦承诺完成,您需要再次调用承诺。非常感谢