首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Array.push()似乎并不是只有在我的应用程序运行时才能工作

Array.push()似乎并不是只有在我的应用程序运行时才能工作
EN

Stack Overflow用户
提问于 2019-06-12 01:00:33
回答 1查看 21关注 0票数 0

我有一个函数,当我独立测试它时,它的行为是正确的。然而,在运行我的整个应用程序时,好像array.push()不再起作用了。

代码语言:javascript
复制
module.exports.getLocalTypes = async (server_id, user_id) => {
  let localTypes = [];
  const getServer = await this.getRobotServer(server_id);
  const { settings } = getServer;
  console.log("GET ROBOT SERVER STATUS: ", settings);
  settings.roles.map(role => {
    console.log("TEST 1 ", role.role);
    role.members.forEach(member => {
      console.log("TEST 2", member);
      if (user_id === member) return localTypes.push(role.role);
    });
  });
  console.log("BEOFRE NO DUPES: ", localTypes);
  localTypes = Array.from(new Set(localTypes));
  console.log("SENDING LOCAL TYPES: ", localTypes);
  return localTypes;
};

当我运行一个独立的测试时,我得到了正确的结果:

代码语言:javascript
复制
TEST 1  default
TEST 2 @everyone
TEST 1  owner
TEST 2 user-810c7f96-47ad-4408-a8a2-3c9274fa2898
BEOFRE NO DUPES:  [ 'owner' ]
SENDING LOCAL TYPES:  [ 'owner' ]
Should return ['owner']:  [ 'owner' ]

当运行我的完整应用程序并对函数使用完全相同的输入时,我会得到以下结果:

代码语言:javascript
复制
[1] TEST 1  default
[1] TEST 2 @everyone
[1] TEST 1  owner
[1] TEST 2 user-810c7f96-47ad-4408-a8a2-3c9274fa2898
[1] BEOFRE NO DUPES:  []
[1] SENDING LOCAL TYPES:  []

该函数从数据库中正确地提取了值,并提取了正确的所有者和角色,但是在将该值添加到数组时似乎失败了。我尝试过将整个过程包装在一个promise中,或者使用try / catch。没有关系。

输出应该是一个添加了类型的数组,就像第一个测试结果一样。

我仍然是JS的新手,所以可能我遗漏了一些基本的东西。对于完整的上下文,整个repo都是在线的:https://github.com/jillytot/remote-control

哦,最后要注意的是,在应用程序运行的同时运行我的测试。测试仍然会产生正确的结果,但实际的应用程序仍然会得到错误的结果。

EN

回答 1

Stack Overflow用户

发布于 2019-06-12 01:33:59

我刚刚解决了这个问题,这和这里的任何事情都没有关系。在某些情况下,我一定是不小心更改了输入别名之一,所以用户进入时是未定义的。我错过了它,因为我之前确认它是有效的,所以我在测试中忽略了它。

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

https://stackoverflow.com/questions/56548556

复制
相关文章

相似问题

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