Asset loader review

Hi! I just wrote this asset loader utilizing nevermore engine. And I was wondering what I can do better as this is my first time doing a script utilizing promises

-- services

local ContentProvider   = game:GetService("ContentProvider")
local ReplicatedStorage = game:GetService("ReplicatedStorage") 

-- constants

local SERVICES = {
	"Workspace",
	"StarterGui",
	"SoundService",
	"ReplicatedStorage",
}

local require  = require(ReplicatedStorage:WaitForChild("Nevermore",1))

local PROMISE = require("Promise")

-- intialize 
do
	local promise = PROMISE.new()
	
	local success,error = pcall(function()
		for index,service in pairs(SERVICES) do
			warn("Loading: " .. service)
			ContentProvider:PreloadAsync({game:GetService(service)})
		end
	end)
	
	if success then
		warn("All Assets Loaded!")
		promise:Resolve()
	else
		warn(error)
		promise:Reject()
	end
	
	promise:Finally(function()
		promise:Destroy()
	end)
end
2 Likes