Bixby是否真的支持ES6? const /让关键字出现故障

时间:2019-07-07 05:52:43

标签: javascript bixby bixbystudio

当与对象循环时,constlet关键字在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关键字更改为constlet,则会出现故障。

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;
}

当我使用constlet关键字时,结果如下:

wrong result

当我使用var关键字时,结果如下:

right result

2 个答案:

答案 0 :(得分:1)

一些建议:

  1. 检查针对Ubuntu的特定问题,因为适用于Ubuntu的Bixby IDE仅处于Alpha阶段。您可以在MAC或PC上测试代码。
  2. IDE中的调试控制台可提供有关异常的更好详细信息。 JS可能会遇到异常,但胶囊仍然尝试使用它可以获得的任何默认值/先前值进行操作。
  3. 仅更改constlet可以隔离问题。
  4. 您可以使用IDE的帮助菜单下的联系人支持功能提交诊断。

答案 1 :(得分:0)

咨询https://mozilla.github.io/rhino/compat/engines.html,以查看各种版本的Bixby支持哪些ES6功能。目前,似乎let(不是const)应该可以正常工作,但是需要一个未记录的标志,我不知道如何使用它。