当与对象循环时,const
,let
关键字在Bixby胶囊本地端点javascript上发生故障。
我在笔记本电脑上运行了Bixby工作室(Ubuntu 18.04)。尝试Bixby模拟器,在调试控制台api上以意外的方式构造结果。
var http = require('http')
var console = require('console')
var config = require('config')
module.exports.function = function getBTCRates () {
console.log("GET /ticker without any parameter!)")
// Read the remote.url value from capsule.properties
var response = http.getUrl(config.get('blockchain.url') + '/ticker', { format: 'json' });
var items = [];
for (var currency in response) {
var item = response[currency];
item.quarterBefore = item['15m']
delete item['15m'];
item.currency = currency;
items.push(item)
}
return items;
}
如果我按照以下方式将var
关键字更改为const
或let
,则会出现故障。
var http = require('http')
var console = require('console')
var config = require('config')
module.exports.function = function getBTCRates () {
console.log("GET /ticker without any parameter!)")
// Read the remote.url value from capsule.properties
var response = http.getUrl(config.get('blockchain.url') + '/ticker', { format: 'json' });
const items = [];
for (let currency in response) {
const item = response[currency];
item.quarterBefore = item['15m']
delete item['15m'];
item.currency = currency;
items.push(item)
}
return items;
}
当我使用const
,let
关键字时,结果如下:
当我使用var
关键字时,结果如下:
答案 0 :(得分:1)
一些建议:
const
或let
可以隔离问题。 答案 1 :(得分:0)
咨询https://mozilla.github.io/rhino/compat/engines.html,以查看各种版本的Bixby支持哪些ES6功能。目前,似乎let(不是const)应该可以正常工作,但是需要一个未记录的标志,我不知道如何使用它。