如何创建硬编码的Promise<IMySetting>[]以返回模拟数据?
解决方法
首先修正你代码里的几个小问题:
- 接口名是
IMySetting,但你定义返回类型时写了IMySettings(多了个s) - 变量名是
settings,但你数组里写的是setting(少了个s)
要创建Promise<IMySetting>[]类型的数组,只需要把每个模拟的IMySetting对象用Promise.resolve()包裹即可——Promise.resolve()会返回一个已决议的Promise,正好匹配你需要的类型。
修正后的完整代码
export interface IMySetting { name: string; } export function getMySettings(id: number): Promise<IMySetting>[] { // 定义生成单个模拟配置的函数 const getMockSetting = (): IMySetting => { return { name: 'test' }; }; // 将每个模拟数据包装为Promise,组成目标数组 return [ Promise.resolve(getMockSetting()), Promise.resolve(getMockSetting()) ]; }
简化写法(无需单独函数)
如果不需要复用模拟数据生成逻辑,也可以直接写对象:
export function getMySettings(id: number): Promise<IMySetting>[] { return [ Promise.resolve({ name: 'test' }), Promise.resolve({ name: 'test' }) ]; }
后续替换成真实后端请求时,只需要把Promise.resolve(...)替换成实际的fetch/axios接口调用即可,完全不影响组件侧的调用逻辑。
内容的提问来源于stack exchange,提问作者PUG
相关产品推荐
相关产品推荐

