条件返回承诺的问题(Nodejs)

时间:2016-06-01 05:06:16

标签: javascript node.js promise

此问题的标题可能需要修改

您好, 我有一个返回对象或承诺的方法。功能如下:

 function getAllTypes()
 {
   if(cache_hit)
   return from_cache;

   else
   {
    // db Query
    findAllTypes.then(function(result){
    return result;
    }
   }
}

此函数将根据大小写返回promise或普通JS对象。这是一个实用功能,将在许多不同的地方使用。我希望保持其返回类型不变,即在两种情况下都是promise或普通JS对象(不需要解析)。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

如果您的方法可能会执行异步操作,那么假设它会执行它,这意味着它将始终返回一个promise,您可以使用Promise.resolve从单个值创建一个Promise,即

function getAllTypes() {
  return cache_hit ? return Promise.resolve(from_cache) : findAllTypes()
}