问题
今天是国庆节后第一天,但是是周六,所以人不多。我在调试一个问题时,发现有一个map类型的值,使用console.log('101 ', JSON.stringify(dataCodesData ));打印出来总是{}。
由于我之前没有在javascript里,打印map的经验,不知道JSON.stringify()不可以直接打印map,调试了很久才发现问题,记录一下。
解决
1、最开始我发现JSON.stringify(dataCodesData)没有值,但是JSON.stringify(dataCodesData.get(identifier))却有值,我以为是dataCodesData包裹在Promise里,只有调用到时,才会触发(这是错误的,我还研究了半天Promise是如何工作的)。我尝试在print之前,先调用一下,发现没用。
2、我没有使用stringify,直接console.log,就发现了问题。
3、这个问题的根源还是js里的map里没有属性(没有fields,就没办法print出来),根据 github,可以转成array,再stringify就行:JSON.stringify(Array.from(map.entries())); 以后注意一下就行。
转载请注明:牛哥678 » 耗费时间: You can’t directly stringify the Map instance as it doesn’t have any properties,