我一直在用Node.js编码,但由于我不熟悉GC如何使用异步方法,我相信我在这段代码中创建了一个内存泄漏:
function getPriceCC(coins, chn) {
// Get the spot price of the pair and send it to general
cc.priceFull(coins.map(function(c){return c.toUpperCase();}),['USD', 'EUR']).
then(prices => {
var msg = '__**CryptoCompare**__\n';
for(var i = 0; i < coins.length; i++)
msg += ('- **' + coins[i].toUpperCase() + '-USD** is : `' +
prices[coins[i].toUpperCase()]['USD']['PRICE'] + ' USD` (`' +
Math.round(prices[coins[i].toUpperCase()]['USD']['CHANGEPCT24HOUR']*100)/100 + '%`).\n'
);
chn.send(msg);
delete chn;
delete coins;
delete msg;
delete prices;
})
.catch(console.error);
}
我读到了关闭,所以我尝试删除回调函数中的变量,但它不断堆积。我还发现有些人不喜欢使用var
并说我的代码很糟糕,而Google的一些示例代码使用var
。
如果需要澄清或需要额外的代码,请告诉我们。
注意:节点版本为8.0.0,实例为AWS上的Ubuntu 16.04。