Bixby 真的支持 ES6 吗? const / let 关键字故障
Does Bixby really support ES6? const / let keywords malfunction
当循环对象时,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
关键字时,结果如下:
wrong result
当我使用var
关键字时,结果如下:
right result
几点建议:
- 检查它是否是 Ubuntu 特定问题,因为 Ubuntu 的 Bixby IDE 仅处于 Alpha 阶段。您可以在 MAC 或 PC 上测试您的代码。
- IDE 中的调试控制台提供了有关异常的更多详细信息。 JS 运行 可能会出现异常,但胶囊仍会尝试继续使用它可以获得的任何 default/previous 值。
- 仅更改
const
或 let
以隔离问题。
- 您可以使用IDE的联系支持功能在帮助菜单下提交诊断。
请参阅 https://mozilla.github.io/rhino/compat/engines.html 了解各种版本的 Bixby 支持哪些 ES6 功能。目前看来 let(不是 const)应该主要工作,但需要一个未记录的标志,我不知道如何使用它。
当循环对象时,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
关键字时,结果如下:
wrong result
当我使用var
关键字时,结果如下:
right result
几点建议:
- 检查它是否是 Ubuntu 特定问题,因为 Ubuntu 的 Bixby IDE 仅处于 Alpha 阶段。您可以在 MAC 或 PC 上测试您的代码。
- IDE 中的调试控制台提供了有关异常的更多详细信息。 JS 运行 可能会出现异常,但胶囊仍会尝试继续使用它可以获得的任何 default/previous 值。
- 仅更改
const
或let
以隔离问题。 - 您可以使用IDE的联系支持功能在帮助菜单下提交诊断。
请参阅 https://mozilla.github.io/rhino/compat/engines.html 了解各种版本的 Bixby 支持哪些 ES6 功能。目前看来 let(不是 const)应该主要工作,但需要一个未记录的标志,我不知道如何使用它。