我必須我傳遞數組或一個對象的功能,那麼它會尋找特定鍵,並相應地編輯它們的值,添加回調回路功能
function iterate(obj, delta) {
for (var property in obj) {
if (obj.hasOwnProperty(property)) {
if (typeof obj[property] == "object") {
iterate(obj[property],delta);
} else {
if(property === 'unix_time'){
var bee = parseInt(obj[property]);
var b = bee + parseInt(delta);
obj[property] = b;
}
}
}
}
}
基本上,它看起來爲「unix_time 「鍵併爲其添加數字」增量「。
問題:當我將它稱爲異步時,它變得未定義,我如何添加一個回調函數,我可以簡單地使用它來確定該函數已完成執行。或者,也許我應該添加一個承諾呢?
例如,當我運行這個它完美地返回
console.log("new one", obj);
iterate(obj, 3600000)
但是,這是一個問題,它變得不確定
var dd = iterate(obj, 3600000);
res.status(200).send(JSON.stringify(dd));
你永遠不會從函數返回任何東西,所以它會總是返回'undefined'。我不知道你的意思是什麼*「當我不等它完成時......」* –
你不需要回調或承諾,因爲你的功能是完全同步的。當它返回時,它已經完成執行。 – Frxstrem
就像@squint所提到的 - 你不會從該函數返回任何東西,因此它將返回null。 如果您想知道您的函數是否已通過代碼中的不同if語句,請添加'console。日誌(「whateverYouWant」)',只要你想它 – Roysh