使用angular-meteor通过Meteor.methods在服务器和客户端之间发送数组

尼古拉斯·萨乌西斯

我正在尝试使阵列由我的服务器管理并共享给我的客户端。我认为Meteor.methods()将是通过创建getter方法来实现的方法。尽管由于某种原因,它可以打印到服务器正确地控制台,但是当我执行Meteor.call()时,它会向客户端返回未定义的值。无论if是true还是false,我都会得到未定义的返回值,但始终是未定义的。

///server
Meteor.methods({
  createNewUser: this.createNewUser,
  getRoles: this.getRoles
});
...
getRoles(id) { 
  console.log(roles);
  if (Roles.userIsInRole(id, "admin")) {
    return roles;
  } else {
    return 'blah';
  }
}

///client
ngOnInit() {
 MeteorObservable.autorun().subscribe(() => {
 ...

    Meteor.call("getRoles", Meteor.userId(), (data) => {
      console.log("data", data);
      this.roles = data;
      console.log("roles", this.roles);
    });

    console.log("user list", this.userList);
    console.log("roles", this.roles);
....
});

Meteor.methods()中的另一种方法可以完美地工作,我似乎无法弄清为什么这个方法看不到它的原因,因为它的处理量要少得多。

///output
demo.component.ts:53 user list []
demo.component.ts:54 roles []
demo.component.ts:53 user list [Object]
demo.component.ts:54 roles []
demo.component.ts:48 data undefined
demo.component.ts:50 roles undefined
demo.component.ts:48 data undefined
demo.component.ts:50 roles undefined
demo.component.ts:53 user list [Object, Object, Object, Object, Object, Object]
demo.component.ts:54 roles undefined
demo.component.ts:48 data undefined
demo.component.ts:50 roles undefined

谢谢你的帮助。

尼古拉斯·萨乌西斯

原来我的问题出在Method.call()

它返回错误和结果,而不是单个对象。

    ///client
    Meteor.call("getRoles", Meteor.userId(), (error, data) => {
      if (!error) {
        console.log("data", data);
        this.roles = data;
        console.log("roles", this.roles);
      } else {
        console.log("error: ", error);
      }
    });

    ///output
demo.component.ts:57 user list []
demo.component.ts:58 roles []
demo.component.ts:57 user list [Object]
demo.component.ts:58 roles []
demo.component.ts:49 data ["admin","spectator","coach","player"]
demo.component.ts:51 roles ["admin","spectator","coach","player"]
demo.component.ts:49 data ["admin","spectator","coach","player"]
demo.component.ts:51 roles ["admin","spectator","coach","player"]
demo.component.ts:57 user list [Object, Object, Object, Object, Object, Object]
demo.component.ts:58 roles ["admin","spectator","coach","player"]
demo.component.ts:49 data ["admin","spectator","coach","player"]
demo.component.ts:51 roles ["admin","spectator","coach","player"]

这就是我的期望(尽管不确定为什么MeteorObservable会被触发多次)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结合使用Meteor和Angular2 / Typescript,如何基于客户端事件从服务器端代码调用外部Web服务?

来自分类Dev

使用Meteor将数据从服务器流传输到客户端:

来自分类Dev

通过ActionScript服务器和Java客户端之间的套接字发送对象

来自分类Dev

使用mORMot Framework在服务器和客户端之间发送消息

来自分类Dev

使用mORMot Framework在服务器和客户端之间发送消息

来自分类Dev

UDP 客户端服务器:通过 WAN 使用

来自分类Dev

通过SSH和身份验证密钥使用的客户端和服务器连接

来自分类Dev

如何使用 Java 客户端和 Python 服务器通过套接字创建 IPC?

来自分类Dev

Meteor.js:解析服务器上的CSV并使用node-csv-string传递回客户端

来自分类Dev

使用Meteor和Meteor Up时如何监视服务器端日志

来自分类Dev

如何使用C ++标准库网络TS在服务器和客户端之间发送消息

来自分类Dev

如何在Meteor中的服务器和客户端代码之间共享全局变量

来自分类Dev

是否可以从服务器向Meteor中的客户端发送警报?

来自分类Dev

在Meteor中从服务器向客户端发送数据的方式有哪些?

来自分类Dev

如何在Meteor中将数据从客户端发送到服务器?

来自分类Dev

是否可以将警报从服务器发送到Meteor中的客户端?

来自分类Dev

通过python中的TCP套接字在客户端-服务器之间发送文件?

来自分类Dev

通过python中的TCP套接字在客户端-服务器之间发送文件?

来自分类Dev

Meteor.call(Meteor.methods)似乎同时在客户端和服务器上运行-引起问题

来自分类Dev

从Meteor服务器方法将数组返回到客户端的最佳实践是什么?

来自分类Dev

我实际上如何使用客户端JavaScript程序通过fetch()函数发送给PHP的PHP检索服务器端的信息?

来自分类Dev

使用Meteor模拟服务器端渲染

来自分类Dev

Android和PC之间通过WIFI的客户端服务器

来自分类Dev

使用现有的mongodb作为MONGO_URL时,如何可靠地将数据从Meteor服务器集合拉到客户端集合?

来自分类Dev

使用Meteor和Meteorhacks:SSR和Iron-Router进行服务器端渲染

来自分类Dev

如何在服务器和客户端的activemq之间使用骆驼

来自分类Dev

使用Gradle在Kotlin服务器和客户端项目之间共享代码

来自分类Dev

如何使用grpc在python服务器和php客户端之间进行通信?

来自分类Dev

如何使用c#.net计算服务器和客户端之间的延迟?

Related 相关文章

  1. 1

    结合使用Meteor和Angular2 / Typescript,如何基于客户端事件从服务器端代码调用外部Web服务?

  2. 2

    使用Meteor将数据从服务器流传输到客户端:

  3. 3

    通过ActionScript服务器和Java客户端之间的套接字发送对象

  4. 4

    使用mORMot Framework在服务器和客户端之间发送消息

  5. 5

    使用mORMot Framework在服务器和客户端之间发送消息

  6. 6

    UDP 客户端服务器:通过 WAN 使用

  7. 7

    通过SSH和身份验证密钥使用的客户端和服务器连接

  8. 8

    如何使用 Java 客户端和 Python 服务器通过套接字创建 IPC?

  9. 9

    Meteor.js:解析服务器上的CSV并使用node-csv-string传递回客户端

  10. 10

    使用Meteor和Meteor Up时如何监视服务器端日志

  11. 11

    如何使用C ++标准库网络TS在服务器和客户端之间发送消息

  12. 12

    如何在Meteor中的服务器和客户端代码之间共享全局变量

  13. 13

    是否可以从服务器向Meteor中的客户端发送警报?

  14. 14

    在Meteor中从服务器向客户端发送数据的方式有哪些?

  15. 15

    如何在Meteor中将数据从客户端发送到服务器?

  16. 16

    是否可以将警报从服务器发送到Meteor中的客户端?

  17. 17

    通过python中的TCP套接字在客户端-服务器之间发送文件?

  18. 18

    通过python中的TCP套接字在客户端-服务器之间发送文件?

  19. 19

    Meteor.call(Meteor.methods)似乎同时在客户端和服务器上运行-引起问题

  20. 20

    从Meteor服务器方法将数组返回到客户端的最佳实践是什么?

  21. 21

    我实际上如何使用客户端JavaScript程序通过fetch()函数发送给PHP的PHP检索服务器端的信息?

  22. 22

    使用Meteor模拟服务器端渲染

  23. 23

    Android和PC之间通过WIFI的客户端服务器

  24. 24

    使用现有的mongodb作为MONGO_URL时,如何可靠地将数据从Meteor服务器集合拉到客户端集合?

  25. 25

    使用Meteor和Meteorhacks:SSR和Iron-Router进行服务器端渲染

  26. 26

    如何在服务器和客户端的activemq之间使用骆驼

  27. 27

    使用Gradle在Kotlin服务器和客户端项目之间共享代码

  28. 28

    如何使用grpc在python服务器和php客户端之间进行通信?

  29. 29

    如何使用c#.net计算服务器和客户端之间的延迟?

热门标签

归档