我是node.js的新手,對javascript來說比較新。我已經理解回調是如何工作的,並且想要自己嘗試一個功能。這是我的代碼:node.js中的回調函數
MyScript.js:
var calledfunction = function()
{
console.log("This is a called function");
for(i=0;i<1090660;i++)
{
console.log(i);
}
console.log('done');
};
var sayHello = require('./sayhello.js');
objhello = new sayHello();
objhello.setupSuite(1,calledfunction);
console.log('Next statement;');
sayhello.js
var _ = require('underscore');
module.exports = exports = CLITEST;
function CLITEST(param1,param2)
{
}
_.extend(CLITEST.prototype, {
setupSuite: function (here,callback) {
console.log(here);
console.log('This is a callback function');
callback();
}
})
上述程序是通過執行運行>節點Myscript.js
我的問題是:for循環消耗50秒來執行並打印控制檯和th中的所有數字en僅執行回調函數外部的「Next語句」行。
這是怎麼發生的?因爲我讀了理論,說即時的語句將被執行而不必等待函數被執行。
理想的輸出應該是:打印「Next語句」,然後打印的內容爲循環
但在上述情況下,反之亦然?
嘗試修復您的代碼格式,難以閱讀 – codebox
您的代碼中沒有異步函數,您爲什麼期望它先打印「Next語句」? – thefourtheye