【问题标题】:sendbird createMyGroupChannelListQuery return empty when recallsendbird createMyGroupChannelListQuery 调用时返回空
【发布时间】:2022-01-24 23:59:31
【问题描述】:

我正在使用 SendBird Javascript SDK createMyGroupChannelListQuery() 和实例的 next() 方法来检索组频道列表。但是,它只会在初始化实例后返回一次列表,下次调用它时,它的结果总是一个空数组。由于我需要多次获取频道,因此我需要始终拥有完整的频道列表。如果您遇到过这种情况,请告诉我。

// Retrieve a list of channels
var listQuery = sb.GroupChannel.createMyGroupChannelListQuery();
listQuery.includeEmpty = true;
listQuery.order = 'latest_last_message'; 
listQuery.limit = 100;   // The value of pagination limit could be set up to 100.

if (listQuery.hasNext) {
    listQuery.next(function(groupChannels, error) {
        if (error) {
            // Handle error.
        }

        // A list of group channels is successfully retrieved.
        groupChannels.forEach(channel => {
            ...
        });

        ...
    });
}

【问题讨论】:

    标签: javascript reactjs vuejs2 sendbird


    【解决方案1】:

    要再次调用它并获得结果,只需调用:

    listQuery.hasNext = true;
    

    【讨论】:

    • 我试图取出listQuery.hasNext 条件仍然返回空数组。我需要创建一个新查询,但再次调用一切都不起作用createMyGroupChannelListQuery() 不会给我一个新查询。它只有在我刷新页面时才会起作用,这个函数在 Vue 应用程序中调用,每次更新组件状态时它都会给出空数组。
    【解决方案2】:

    我有一个沙盒供你尝试:

    https://codesandbox.io/s/javascript-has-next-problem-fducb?file=/src/index.js

    更改APP_IDUSER_ID

    检查控制台,它应该会出现“First time”和频道列表,然后是“Second time”和频道列表。

    【讨论】:

      猜你喜欢
      • 2021-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      相关资源
      最近更新 更多