概要
範例程式碼
頁面迭代器
-- 將頁面重新格式化為表格
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
-- 這個協程會在沒有任何內容可處理時恢復
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():()
返回
()