此问题的标题可能需要修改
您好, 我有一个返回对象或承诺的方法。功能如下:
function getAllTypes()
{
if(cache_hit)
return from_cache;
else
{
// db Query
findAllTypes.then(function(result){
return result;
}
}
}
此函数将根据大小写返回promise或普通JS对象。这是一个实用功能,将在许多不同的地方使用。我希望保持其返回类型不变,即在两种情况下都是promise或普通JS对象(不需要解析)。
有没有办法实现这个目标?
答案 0 :(得分:1)
如果您的方法可能会执行异步操作,那么假设它会执行它,这意味着它将始终返回一个promise,您可以使用Promise.resolve
从单个值创建一个Promise,即
function getAllTypes() {
return cache_hit ? return Promise.resolve(from_cache) : findAllTypes()
}