我在撰寫干凈的 OOP 代碼時遇到問題,比如在 TypeScript 中,而我的一些物件包含異步方法:“最終”發生的是我正在撰寫靜態方法,而“使用”這些靜態方法的任何物件或方法都是“被污染'并且需要轉換成一種承諾本身......我確定我做錯了什么 - 是否有一些我遺漏的架構技巧?
讓我們舉一個具體的例子:我正在用我的 MongoDB 檔案的模型物件撰寫一個 Node JS 應用程式。沒有什么花哨。但是,當我在我的應用程式中使用物件的方法時,無論在哪個類中,使用這些方法的每個方法都必須是異步的。然后使用該方法的每個方法也必須是異步的......等等。
有沒有辦法以至少保持正常 OOP 架構的外觀的方式使用 MongoDB 異步操作,或者是否有一種全新的邏輯我需要學習撰寫異步 OOP 應用程式?
希望我把我的問題說清楚了,
uj5u.com熱心網友回復:
異步方法不必是靜態的,并且沒有任何理由認為使用異步操作的程式不能具有與不使用異步操作的程式相同的整體結構。
然而,異步操作具有傳染性。這就是所謂的紅/藍功能問題:https ://journal.stuffwithstuff.com/2015/02/01/what-c??olor-is-your-function/
這并不理想,但它是最好的,不需要來自用于實作 JS 的語言/系統的一些非常特殊的功能。您可以擁有帶有自身問題的執行緒,也可以擁有一些復制呼叫堆疊的機制,例如 Go 和即將推出的 Java 專案 Loom。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/513488.html
