Javascript 对象保留“旧”属性,无法覆盖?

dan*_*ess 6 javascript reactjs redux

我有以下代码:

    const readDataFromSql = () => {
        // going to have to iterate through all known activities + load them here
        let sql = "[...]"
        return new Promise((resolve, reject) => {
            executeSqlQuery(sql).then((dict) => {
                let loadedData = [];
                for (let key in dict) {
                    let newItemVal = new ItemVal("reading hw", 7121, progress.DONE);
                    loadedData.push(newItemVal);
                }
                resolve(loadedData);
            });
        });
    }
Run Code Online (Sandbox Code Playgroud)

ItemVal 实现:

class ItemVal {
   constructor(name, time, type) {
      this.name = name
      this.time = time
      this.type = type 
   }
}
Run Code Online (Sandbox Code Playgroud)

假设第一次运行 readDataFromSql() 时 newItemVal = "reading hwj", 5081, progress.PAUSED 。

readDataFromSql() 然后在一些状态更改后再次调用——它从数据库中撤回一些信息并生成新值。然而令人困惑的是,当它第二次被调用时,newItemVal 仍然保留了它的旧属性(下面附上截图)。

我是否滥用了 new 关键字? 在此处输入图片说明

小智 0

const readDataFromSql = async () => {
        let sql = "[...]"        
------> await executeSqlQuery(sql).then((dict) => {
Run Code Online (Sandbox Code Playgroud)

使用await 关键字而不是创建新的promise。