Skip to content

Promise

Promise

ts
const getName = (): Promise<string> => {
  return new Promise((resolve, reject) => {
    resolve("Jad")
  })
}

async

ts
const fetchData = async (): Promise<number> => {
  return 1 // 返回类型为 number
}

Promise.all

  1. 自动推导
ts
const getName = (): Promise<string> => {
  return new Promise((resolve, reject) => {
    resolve("Jad")
  })
}

function loadItem(id: string): Promise<{ id: string }> {
  return new Promise(resolve => {
    console.log("loading item", id)
    setTimeout(() => {
      // simulate a server delay
      resolve({ id: id })
    }, 1000)
  })
}
Promise.all([getName(), loadItem("1"), getName()]).then(res => {
  // 可以自动推导出 res = [string , {id : string }]
})
  1. 显式定义

可以通过Promise.all<PromiseReolveResult1 , PromiseReolveResult2 , PromiseReolveResult3 , ... > 的方式去显式的定义 Promise.all 的类型,那么这时候如果 all 的结构体错误就会提示

ts
Promise.all<string, { id: string }, string>([getName(), loadItem("1"), getName()]).then(res => {})

image-20230214155059004

eslint