Map.prototype.forEach 没有遍历 Map

Map.prototype.forEach not iterating over Map

我从通过 Sails 模型获得的 MySQL RowDataPacket 数组初始化了一个 Map。然后,当控制台记录该 Map 时,我可以看到结果,但是当我使用 Map.prototype.forEach 遍历 Map 时,它没有迭代。任何人都可以检查我做错了什么吗?

我正在使用以下技术。 网络框架:Sails:1.1.0 运行时间:NodeJs:v8.16.0 打字稿 Javascript: es6 数据库:MySql:5.6

    import { Currency } from 'typings/finance';

    import sails from "sails"
    //Sails Model
    const Currency = sails.models.currency

    export class CurrencyConverter {
        private : convertionRates Map<string, Currency>

        public constructor() {
            //Get a new Map
            this.convertionRates = new Map<string, Currency>()
        }

        public async inIt() {
                //Get Data through sails model object form MySql database
                const ConvertionRatesFromDB: Currency[] = await Currency.find()
                //Update this.convertionRates Map
                for (let ConvertionRateFromDB of ConvertionRatesFromDB) {
                    this.convertionRates[ConvertionRateFromDB.code] = ConvertionRateFromDB
                }

                //Data shows here :/
                console.log(this.convertionRates);

                //But nothing logs here :(
                this.convertionRates.forEach(() => console.log("Hello"))
        }    
}

我希望在控制台中多次登录 Hello。但是没有输出。

this.convertionRates[ConvertionRateFromDB.code] = ConvertionRateFromDB 未向 convertionRates 映射添加条目。 this.convertionRates.set(ConvertionRateFromDB.code, ConvertionRateFromDB) 会这样做。您的代码将对象 属性 添加到地图对象。

所以最后你的地图是空的,解释了为什么没有记录。