Javascript 我应该如何在函数中使用promise来确保返回类型正确

Javascript 我应该如何在函数中使用promise来确保返回类型正确,javascript,ecmascript-6,promise,async-await,Javascript,Ecmascript 6,Promise,Async Await,我编写了一个函数来从后端服务器检索一些数据 getEventList() { return this.request({ url: '/event/v1/list' }) } getEventList()返回一个承诺,但现在我需要先检查本地缓存 getEventList() { if local cache exists return local cache return this.request({ url: '/event/v1/list'

我编写了一个函数来从后端服务器检索一些数据

getEventList() {
  return this.request({
    url: '/event/v1/list'
  })
}
getEventList()
返回一个承诺,但现在我需要先检查本地缓存

getEventList() {
  if local cache exists
      return local cache

  return this.request({
    url: '/event/v1/list'
  })
}

本地缓存是一个数组,请求结果是一个承诺。一个函数有两种不同的返回类型,我应该如何保持
getEventList()
随时返回数组?

同时从缓存检查返回承诺:

getEventList(){
如果(缓存){
返回承诺。解决(缓存结果);
}
返回此文件。请求({
url:“/event/v1/list”
})

}
同时从缓存检查中返回承诺:

getEventList(){
如果(缓存){
返回承诺。解决(缓存结果);
}
返回此文件。请求({
url:“/event/v1/list”
})

}
如果缓存的结果可用,则将其包装为Promise,这样您的函数将始终返回一个
Promise
您肯定应该返回一个用数组解析的
Promise
。始终与函数的返回类型保持一致。只需执行
返回承诺。解析([…])
就可以了。只需将
这个请求(…)
本身放入缓存…!^这不是一个好主意,因为您将调用多个
。然后在promise上调用
,并且不必要地存储整个promise加上关联的上下文。。。编辑:事实证明这确实有好处,请参见下文。您也可以只使函数
异步
,然后它总是返回一个承诺。如果缓存的结果可用,请将其包装为承诺,这样您的函数将始终返回一个
承诺
。您肯定应该返回一个用数组解析的
承诺
。始终与函数的返回类型保持一致。只需执行
返回承诺。解析([…])
就可以了。只需将
这个请求(…)
本身放入缓存…!^这不是一个好主意,因为您将调用多个
。然后在promise上调用
,并且不必要地存储整个promise加上关联的上下文。。。编辑:事实证明这确实有好处,请参见下文。您也可以将函数设置为异步,然后它总是返回一个承诺。