【发布时间】:2016-05-22 23:42:01
【问题描述】:
我目前使用的三元运算符如下:
return $scope.productWithEAN(EAN).then(function(product) {
return (product) ? product : $scope.createProduct(productID, name);
});
});
我现在想指向一个函数 if return (product) ? product
我认为最好使用 if else 语句来完成。我已经创建了这个,但是我得到了一个意外的返回令牌:
return $scope.productWithEAN(EAN).then(function(product) {
if (return (product) ? product) {
console.log("product is here");
//$scope.checkOrUpdateProduct;
},else {
console.log("product not here");
//$scope.createProduct(productID, name);
};
});
});
有更好的方法吗?
【问题讨论】:
-
您的新代码有一些语法错误:您现在使用的三元运算符只有两个操作数(它必须有三个),您的
if条件中有一个return,并且您在您的else之前有一个逗号。 -
你不能那样做。
return语句可以包含表达式,但if ... else不是表达式;这是一种不同的语句类型。同样,您不能在if需要表达式的地方嵌入return。 -
语句可能是:
return product || $scope.createProduct(productID, name);,这可能比 if..else 序列更清晰。 -
谢谢@Pointy - 我认为还需要阅读更多内容!!!我以为是这样的东西破坏了一切!
-
完全一样:
return a() || b()。如果a()的返回值为真,则返回,否则返回b()的返回值(不管是否为真)。
标签: javascript