首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Twilio ()分页器页项未定义

Twilio ()分页器页项未定义
EN

Stack Overflow用户
提问于 2020-10-09 20:33:44
回答 1查看 38关注 0票数 0

最近,我们遇到了一个异常,我们一直找不出答案,但不得不在一个故障安全装置中编程。

问题是,由分页器返回的Client.getUserChannelDescriptors()有下一个页面,但是page.items返回undefined,下面的while循环将保持在不定式循环中:

代码语言:javascript
运行
复制
async getAllRoomDescriptors() {
    try {

        var descPaginator = await TwilioClient.getChannelDescriptors()
        var descs = descPaginator.items.concat([])
        
        console.log('descPaginator: ', descPaginator); // Paginator looks normal

        // NB! This is infinitive loop!
        while (descPaginator.hasNextPage) {
            var pag = descPaginator.nextPage()     // returns another Paginator (page)
            console.log('pag.items: ', pag.items); // returns undefined!!!
            descs = descs.concat(pag.items)
        }
        return descs
    } catch (error) {
        throw new Error(error)
    }
}

为了解决这个不定式循环未定义的页面项,我添加了以下故障安全(读取hacks),以使它在不了解问题根源的情况下工作。

代码语言:javascript
运行
复制
async getAllRoomDescriptors() {
    try {
        var descPaginator = await TwilioClient.getChannelDescriptors()
        var descs = descPaginator.items.concat([])
        var currPage = 0
        var maxAllowedPages = 60

        while (descPaginator.hasNextPage) {
            currPage++
            var pag = descPaginator.nextPage()

            // 1st sign of trouble if items are undefined
            if(!pag.items) break;

            descs = descs.concat(pag.items)

            // 2nd problem, infintity loop avoidance check
            if(currPage >= maxAllowedPages) break;
        }
        return descs
    } catch (error) {
        throw new Error(error)
    }
}

从3.3.5到4.0.0的所有昌洛基都没有提到任何关于它的内容,关于分页器工作方式的文档也没有改变。

有没有人知道是什么导致了这个问题。在3.3.5和4.0.0上都有相同的行为。而且,这似乎是与特定用户隔离的,因为我无法在另一个使用较少的通道中重新创建此功能。这发生在“加载”最多的Twilio用户身上。

EN

回答 1

Stack Overflow用户

发布于 2021-01-13 10:34:25

代码中有一个错误:descPaginator.nextPage()返回一个承诺,所以您必须再次使用await。就像这样:

代码语言:javascript
运行
复制
while (descPaginator.hasNextPage) {
  descPaginator = await descPaginator.nextPage();
  //do stuff
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64286939

复制
相关文章

相似问题

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