function f(cb) {
console.log("f's activity starts.");
var t = Math.random() *5000;
function onActivityDone() {
console.log("f's activity ends.");
if (cb) cb();
}
setTimeout(onActivityDone, t);
}
f();
f();
f();
console.log();
我用這個函數做回調,任務是不修改'f'函數。 的輸出要求是這樣的:Callback node.js
f's activity starts.
f's activity starts.
f's activity starts.
f's activity ends.
f's activity ends.
f's activity ends.
Done.
但由於某些原因,我一直在歌廳
f's activity starts.
f's activity starts.
f's activity starts.
Done.
f's activity ends.
f's activity ends.
f's activity ends.
任何想法發生了什麼?
我猜console.log();意味着'完成'? –
異步功能的力量! – BeNdErR
發電機的威力! – Florent