// import { getAdvertList } from "@/common/server/interface/advert";
import { preloadHomeData } from '@/common/server/index'
import { preloadConfigData } from '@/common/server/config'
import { anonymousLogin } from '@/common/server/user'
/**
 * 应用初始化函数，带有超时控制
 * @param {number} timeoutMs - 超时时间（毫秒）
 * @returns {Promise<boolean>} - 返回Promise，true表示初始化成功，false表示失败
 */
export const appInit = async (timeoutMs = 5000) => {
    try {
        //获取首页关键数据
        const homeTask = preloadHomeData();
        const configTask = preloadConfigData();
        const anonymousTask = anonymousLogin();
        // 2. 创建一个会在指定时间后拒绝的Promise用于超时控制
        const timeoutPromise = new Promise((_, reject) =>
            setTimeout(() =>
                // 当超时触发时，拒绝Promise并返回超时错误
                reject(new Error(`初始化获取超时 (${timeoutMs}ms)`)),
                timeoutMs
            )
        );
        // 3. 使用Promise.race让首页获取数据和超时Promise"赛跑"
        // 哪个先完成（成功或失败）就采用哪个的结果
        await Promise.race([
            // 使用Promise.all包装是为了保持一致性
            Promise.all([homeTask, configTask, anonymousTask]),
            timeoutPromise
        ]);
        // 4. 如果没有超时全部获取成功，返回true
        return true;
    } catch (error) {
        // 5. 错误处理（可能是超时错误或首页获取失败）
        console.error('初始化任务失败:', error);
        // 6. 返回false表示初始化失败
        return false;
    }
} 