2017-03-01 36 views
0

在我的應用我有它返回一個Promise()既然這個動作需要更新的API,我檢查,如果一個函數調用請求發送相同的信息的功能:如果不採取行動,我應該解決還是拒絕?

module.exports = function updateSidebar(sidebar) { 
    return new Promise(function(resolve, reject) { 
    if (sidebar === lastSidebar) { 
     // What to I do here? 
    } else { 
     // Application Logic 
    } 
    }); 
} 

在這種情況下,我會reject()Promise(),給我「無效」的數據,或者我resolve()意味着行動已成功完成? (它有,只是更早)

任何意見是非常歡迎!

+0

解決似乎更合適。拒絕意味着出了問題,但事實並非如此。 – Marty

+0

不知道語法或需要什麼,但是如果側邊欄和lastSidebar不匹配,只做負面比較並運行應用程序邏輯不會更簡單嗎? – junkfoodjunkie

+0

@junkfoodjunkie - 'updateSidebar()'正在返回一個承諾,這就是調用者期望的,所以它仍然需要返回承諾,即使沒有任何事情要做,如果這被認爲是成功的場景,那麼它需要解決諾言也是如此,'if/else'在這裏完全適用。 – jfriend00

回答

1

如果你已經有了你想要的結果,那麼只需resolve(result)。這很好,除非你認爲這是一個錯誤(在這種情況下你會拒絕),那麼你應該只是解決一些成功的結果。

module.exports = function updateSidebar(sidebar) { 
    return new Promise(function(resolve, reject) { 
    if (sidebar === lastSidebar) { 
     resolve(someSuccessfulResult); 
    } else { 
     // Application Logic 
    } 
    }); 
} 
+0

這很有道理!謝謝! – MayorMonty

相關問題