2016-10-06 31 views
0

多條語句之一,我有這樣的代碼:使用回報三元表達

err ? (reject(err), return) 
     : resolve(db) 

將返回:

SyntaxError: Unexpected token return

但是這個工程:

err ? (reject(err), console.log('test')) 
    : resolve(db) 

這是爲什麼回報在這種情況下不能使用?在使用三元運算符進行多條語句時是否有其他替代方法可以停止函數執行?

+0

您只能擁有表達式。 'return'不是表達式的一部分 – murli2308

回答

3

這是一個三元組表達式,整個表達式必須評估爲一個值,因此只包含表達式。您也不能說a = 1 + return;

Is there other alternative to stop function execution while using ternary operator for multiple statements?

if聲明...

if (err) { reject(err); return } 

resolve(db); 
+0

哦,我明白了,現在我明白了。 – Kunok

1
err ? (reject(err), return) 
    : resolve(db) 

Is there other alternative to stop function execution while using ternary operator for multiple statements?

三元運營商都沒有包括隱式return語句的意義喜歡if else。因此,一旦條件滿足,爲了儘快恢復,您可以按照以下步驟正確地做。

return err ? reject(err) 
      : resolve(db); 
+0

如果錯誤是真的,我只需要返回 – Kunok