创建一个硬编码的Promise<T>[],以返回组件,因为还没有后端。

huangapple go评论89阅读模式
英文:

Create a hardcoded Promise<T>[] to return component as there is no backend yet

问题

我有一个函数,将来会进行后端调用以获取数据。现在我想向组件返回虚拟数据。如何创建硬编码的 Promise&lt;IMySetting&gt;[]

  1. export function getMySettings(id: number): Promise&lt;IMySetting&gt;[] {
  2. const settings = (
  3. ): IMySettings =&gt; {
  4. return {
  5. name: &#39;test&#39;
  6. };
  7. };
  8. const myArray = [setting, setting];
  9. return ... //如何创建一个 Promise&lt;IMySetting&gt; 数组
  10. }
  1. export interface IMySetting {
  2. name: string;
  3. }
英文:

I have a function which in future will make a backend call to get data. For now I want to return dummy data to component. How can create a hardcoded Promise&lt;IMySetting&gt;[]

  1. export function getMySettings(id: number): Promise&lt;IMySetting&gt;[] {
  2. const settings = (
  3. ): IMySettings =&gt; {
  4. return {
  5. name: &#39;test&#39;
  6. };
  7. };
  8. const myArray = [setting, setting];
  9. return ... //How to create an array of Promise&lt;IMySetting&gt;
  10. }
  1. export interface IMySetting {
  2. name: string;
  3. }

答案1

得分: 2

只需将您的函数设置为 async,然后您可以 return 您喜欢的任何内容,它将隐式解析为一个 Promise。

  1. export interface IMySetting {
  2. name: string;
  3. }
  4. async function getMySettings(id: number): Promise<IMySetting[]> {
  5. return [
  6. { name: 'test1' },
  7. { name: 'test2' }
  8. ];
  9. }

查看示例


如果您真的出于某种原因想要一个 promise 数组,而不是一个解析为数组的 promise,您可以使用 Promise.resolve(value) 来创建一个已经解析的 promise。

  1. export interface IMySetting {
  2. name: string;
  3. }
  4. function getMySettings(id: number): Promise<IMySetting>[] {
  5. return [
  6. Promise.resolve({ name: 'test1' }),
  7. Promise.resolve({ name: 'test2' })
  8. ];
  9. }

查看示例

英文:

Just make your function async, and then you can return whatever you like which will implicitly resolve to a Promise for you.

  1. export interface IMySetting {
  2. name: string;
  3. }
  4. async function getMySettings(id: number): Promise&lt;IMySetting[]&gt; {
  5. return [
  6. { name: &#39;test1&#39; },
  7. { name: &#39;test2&#39; }
  8. ];
  9. }

See Playground


And if you really wanted an an array of promises for some reason, instead of a promise that resolves to an array, you can use Promise.resolve(value) to create a promise that is already resolved.

  1. export interface IMySetting {
  2. name: string;
  3. }
  4. function getMySettings(id: number): Promise&lt;IMySetting&gt;[] {
  5. return [
  6. Promise.resolve({ name: &#39;test1&#39; }),
  7. Promise.resolve({ name: &#39;test2&#39; })
  8. ];
  9. }

See Playground

huangapple
  • 本文由 发表于 2023年7月11日 12:35:52
  • 转载请务必保留本文链接:https://go.coder-hub.com/76658741.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定