我不知道SO是否適合這樣的問題。使用'承諾'與不使用'承諾':在哪些情況下?
我知道Promises
,我在Node/Express
環境中使用它們在查詢數據庫(=等待DB答案,然後執行某些操作)時「修復」Node
的異步行爲。
但是,我使用它們越多,我不知道什麼時候不使用它們。
例如,我寫了這樣的一段代碼(對於本地腳本查詢Google Matrix API
)...
....
for (var i = 0; i < rows.length; i++) { // loop over a CSV file by line
var cell = rows[i].split(/;/)
var origin = cell[1]
var destination = cell[2]
var id = cell[0]
Promise.all([origin, destination, id]).then((p) => {}
...
我不知道,如果使用這裏Promise.all
有道理可言..
是否有規則知道?我沒有得到的行爲?
換句話說,我什麼時候知道我的腳本運行function
沒有正確的參數(argument
從另一個function
不是「超過」返回)有一個「風險」...?
謝謝。
您使用承諾來幫助處理異步進程。如果沒有異步,那麼就沒有必要使用promise。在你的例子中,'origin','destination'和'id'是**串**,不是承諾。將這些值傳遞給'Promise.all'沒有任何意義。我認爲你應該繼續學習承諾,以便你真正理解他們正在解決哪個問題。那麼「何時不使用它們」這個問題應該是顯而易見的。 –
您不會在上面的情況下使用Promises,因爲它不是異步的。您通常會在需要回調或等待某些異步行爲完成時使用promise。 –
它沒有任何意義,'Promise.all(list)'返回一個承諾,一旦所有的承諾在list上完成,但你傳遞一個單元格列表?文本?當然不是承諾。 – ranisalt