2

当使用对象循环时,constBixbylet胶囊本地端点 javascript 上的关键字出现故障。

我在笔记本电脑(Ubuntu 18.04)上运行 Bixby 工作室。尝试 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;
}

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

错误的结果

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

正确的结果

4

2 回答 2

1

几点建议:

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

请参阅https://mozilla.github.io/rhino/compat/engines.html以了解 Bixby 的各个版本都支持哪些 ES6 功能。目前似乎 let (not const) 应该主要工作,但需要一个未记录的标志,我不知道如何使用它。

于 2020-03-17T10:53:34.153 回答