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加上关联的上下文。。。编辑:事实证明这确实有好处,请参见下文。您也可以将函数设置为异步,然后它总是返回一个承诺。