概要
範例程式碼
頁面迭代器
-- 將頁面重新格式化為表格
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 = "頭髮"
local catalogPages = AvatarEditorService:SearchCatalogAsync(parameters)
for item, pageNumber in iterPageItems(catalogPages) do
print(item, pageNumber)
endAPI 參考
屬性
方法
AdvanceToNextPageAsync
Pages:AdvanceToNextPageAsync():()
返回
()