[node] 請問有沒有辦法寫一個非阻塞的function

作者: OrO3 (OrO3)   2015-12-06 22:06:48
node.js採用事件驅動模式
在語言以及標準庫當中用了很多非阻塞的function
例如寫入檔案時
fs.appendFile()
那我想請問,有沒有辦法自己建立一個這種,非阻塞的function ?
像是叫他算個東西,算完在再丟上來,而不要佔用主執行緒之類的
像是
function count(callback){
//算一些很浪費時間的東西
callback(500);
}
console.log("start");
count(function(ans){
console.log("ans:"+ans);
});
console.log("end");
會顯示
start
end
ans:500
(沒阻塞在count)
而不是
start
ans:500
end
(阻塞在count)
作者: mmis1000 (秋月戀楓)   2015-12-06 22:36:00
利用 child_process 可以辦到可以把需要計算的東西丟到子程序計算不過用node.js跑需要大量計算的東西其實本來就不是很適合
作者: OrO3 (OrO3)   2015-12-06 22:55:00
原來如此
作者: mrbigmouth (大嘴先生)   2015-12-07 16:56:00
fibers 不過fibers在比較新的node.js版本好像有問題?
作者: mmis1000 (秋月戀楓)   2015-12-07 22:18:00
fibers 貌似還是跑在主thread上阿,load太大還是會影響到主程式
作者: Neisseria (Neisseria)   2015-12-08 14:14:00

Links booklink

Contact Us: admin [ a t ] ucptt.com