Nodejs裡能否用Event emitter取代Callback function

時間 2021-05-29 22:43:37

1樓:楊勝強

我是個新手噠,但是好像明白一點了,EventEmitter最終使用的目的不是為了流程控制而是一種耦合度較低的非同步呼叫,也就是如果這個非同步會有多次被觸發的情況。

2樓:

一群人都在 「誤導」 ,使用 Promise 取代 Callback ?

Promise 是單次的流程,而 Callback 是可以被持續觸發的

3樓:死馬

/cc @樸靈 eventproxy: https://

4樓:賀師俊

這要看callback是什麼性質的。

如果是立即(同步)執行的callback,比如Array#forEach之類的,通常沒必要更換形式。某些情況下可能適合換為generator。

如果是一次性的非同步任務,用Promise。

如果是多次的非同步任務,可用Event。(將來可能某些情況適合換為observable。)

5樓:沈嶸

Node.js 把 callback 作為非同步程式設計的最小約定,而不像之前其他語言或框架試圖讓大家用同步的方法來寫實際上可能是需要非同步控制的程式。在這個最小約定之上,那麼就可能有不同的選擇,例如:

你仍然可以選擇 Promise (bluebird, Q...),generator/yield,await(ES7)這樣的準同步語法來寫;或者更加函式化,用 Event(Refluxj 幾乎就是這樣的思路,只是它沒有用Event Emitter,用自己定義的 Action來近似這個過程), Stream(或者其高層抽象highlandJS),Functional Programming Reactive (BaconJS, Kefir...) 等方式來開發。

爬蟲是不是用 Node js 更好?

全棧研習社 用不習慣python,所以自己用nodejs寫了乙個https 從描述上看,似乎尚未涉及 PhantomJS 分布式,外掛程式等。所以,其實樓主的問題不是用什麼語言好,而是先把各種技術了解清楚。爬不到可能會有很多情況,是不是網路質量問題?是不是請求被伺服器拒絕?是不是記憶體 或者其他 不...

在Node js上用什麼測試框架好?

Lean Props Cucumber.js現在比較流行,行為驅動框架,可以用自然語言編寫測試用例。現在還有乙個正流行的開發工具CukeTest。可以看下這篇文章 Leric Zhang 按照npm上被依賴的排名看,vows應該算是最流行的了,用起來也確實很方便 Kaid Wong 死馬推薦的moc...

用nodejs做後端和其他語言有什麼區別?

髒而快的寫法,hack and quickly,簡單暴力,寫中小型專案非常爽。大型專案真沒寫過,不敢妄評。從學習的角度的角度來說,是主流語言中最快可以執行hello world的。當初上JSP課,光配環境老師就能帶著配一周,大小毛病折磨人,之後我就再也沒碰那玩意了。越小的東西用node越好寫,比如糊...