鍊式Promise:理解".then(function(a){ return a; })"
使用Promise 鏈時,經常經常遇到像是「.then(function(a){ return a; })」這樣的語句。程式碼中出現了這樣的語法:
var getEvents = function(participantId) { return new models.Participant() .query({where: {id: participantId}}) .fetch({withRelated: ['events'], require: true}) .then(function(model) { return model; }); };
問題來了:這個函數在功能上是否與直接回傳 fetch() 相同,而不需要額外的「.then()」?
答案:無操作
是的。 「.then(function(a){ return a; })」其實是 Promise 的無操作(no-op)。它傳回相同的 Promise,行為方式相同,並且可以等效地呼叫。
推理:
Promise 用來表示非同步操作。當一個 Promise 被解決時,它會透過「then」函數將其結果傳遞給鏈中的下一個 Promise。然而,當“then”函數只是返回輸入時,它不會向鏈添加任何值。
作者可能使用它的原因:
The包含看似多餘的「.then()」可能歸因於以下兩個原因之一:
底線:
在大多數情況下,「.then(function(a){ return a; })」是不必要的,可以省略而不影響所需的行為。它是一個沒有任何用途的佔位符,應該將其刪除以提高程式碼清晰度。
以上是Promise 鏈中需要「.then(function(a){ return a; })」嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!