首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >dataTransform in Deepstream.io在控制台中提供“Uncaught:意外的输入结束”

dataTransform in Deepstream.io在控制台中提供“Uncaught:意外的输入结束”
EN

Stack Overflow用户
提问于 2015-07-21 13:31:18
回答 1查看 87关注 0票数 1

我试图使用新的dataTransforms API操纵通过Deepstream发送回客户端的数据,但是,我总是在控制台中获得Uncaught SyntaxError: Unexpected end of input。可能需要很长时间才能完成对Deepstream的数据库查找,但我不太确定。

我的相关代码是:

代码语言:javascript
复制
DSServer.set('dataTransforms', [
  {
    topic: DSServer.constants.TOPIC.RECORD,
    action: DSServer.constants.ACTIONS.READ,
    transform: transformRecord
  }
]);

var transformRecord = function (data, metadata) {
  if (metadata.recordName.split('/')[0] === 'team') {
    var new_member_info = [];
    var i = 0;

    _.forEach(data.members, function (members) {
      r.table('user').get(members.user_id).run()
        .then(function (doc) {
          if (doc !== null) {
            new_member_info.push({
              user_id: members.user_id,
              display_name: doc._d.display_name,
              username: doc._d.username
            });

            i += 1;

            if (i === data.members.length) {
              data.members = new_member_info;
              return data;
            }
          }
        })
        .error(function (err) {
          console.error(err);
        });
    });
  } else {
    return data;
  }
};

每当从记录中读取时,它将检查它是否是从团队记录中读取的。如果它是从团队记录中读取的,它将获取该团队的所有成员,并将其添加到成员中:{}。

当它对所有成员进行迭代并添加有关它们的信息时,它将返回新的数据。

知道有什么不对劲吗?

我是不是理解错了dataTransforms

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-21 14:50:15

由于性能原因,所有数据转换都需要同步返回结果。

代码语言:javascript
复制
r.table('user').get(members.user_id).run()
        .then(...

但是,它异步运行,并将其值返回给then中使用的函数,而不是dataTransform函数。无论是否应用了转换,始终返回数据也是至关重要的。

如果我正确理解它,您的用法是从RethinkDb服务器加载多个用户的信息。我可以建议对此使用记录名的列表或构建一个与RethinkDb交互的数据提供者

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31540528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档