我有一個名爲status的api端點。應該這樣使用:回調參數前的選項參數
status/ohio/columbus
status/nebraska/fremont
status/ohio/columbus/police
status/nebraska/fremont/fire
州和市道路是強制性的,但部門不是。
我想有一個函數,用返回值更新回調。以下功能是否合理或混亂?我應該有多個功能 - getStatus和getStatusForDepartment?
function getStatus(state, city, department, callback)
{
let status = "status/"+state+"/"+city
if(typeof department != "function"){
status = status+"/"+ department
}else{
callback = department
}
...
}
看起來很好,不需要的參數並不少見,它通常是在你的參數處於參數列表中間時解決的。幾乎所有的庫,包括jQuery,都做同樣的事情。 – adeneo
你也可以重新排序。大概''回調'總是需要的,那麼爲什麼不把它作爲第一個而不是最後一個參數呢?另一種方法是傳遞一個參數,這個參數是'state','city','callback'和'department'屬性的一個對象。或者,假設您正在執行ajax調用並且回調應該在完成時執行,只需讓您的函數返回一個承諾,您就可以將回調附加到返回的承諾上。 –