概要
代码示例
页面迭代器
-- 将页面重新格式化为表格
local function pagesToTable(pages)
local items = {}
while true do
table.insert(items, pages:GetCurrentPage())
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
end
return items
end
local function iterPageItems(pages)
local contents = pagesToTable(pages)
-- 从1开始跟踪当前页面编号
local pageNum = 1
-- 获取最后一页的编号,以免迭代它
local lastPageNum = #contents
-- 为resume这个协程,直到没有可以处理的内容
return coroutine.wrap(function()
-- 循环直到页面编号大于最后一页编号
while pageNum <= lastPageNum do
-- 遍历当前页面的所有条目
for _, item in ipairs(contents[pageNum]) do
-- 暂停循环以让开发者处理条目和页面编号
coroutine.yield(item, pageNum)
end
pageNum += 1
end
end)
end
-- 使用iterPageItems函数遍历目录搜索的页面
local AvatarEditorService = game:GetService("AvatarEditorService")
local parameters = CatalogSearchParams.new()
parameters.SearchKeyword = "Hair"
local catalogPages = AvatarEditorService:SearchCatalogAsync(parameters)
for item, pageNumber in iterPageItems(catalogPages) do
print(item, pageNumber)
endAPI 参考
属性
方法
AdvanceToNextPageAsync
Pages:AdvanceToNextPageAsync():()
返回
()