讓構(gòu)造函數(shù)返回承諾是不好的做法嗎?我正在嘗試為一個博客平臺創(chuàng)建一個構(gòu)造函數(shù),它的內(nèi)部有許多異步操作。這些內(nèi)容包括從目錄中抓取帖子、解析它們、通過模板引擎發(fā)送它們等等。所以我的問題是,讓我的構(gòu)造函數(shù)返回一個承諾而不是他們調(diào)用的函數(shù)的對象是不明智的嗎?new反對。例如:var engine = new Engine({path: '/path/to/posts'}).then(function (eng) {
// allow user to interact with the newly created engine object inside 'then'
engine.showPostsOnOnePage();});現(xiàn)在,用戶也可能不提供補充承諾鏈:var engine = new Engine({path: '/path/to/posts'});// ERROR// engine will not be available as an Engine object here這可能會造成問題,因為用戶可能會混淆為什么 engine 施工后不可用。在構(gòu)造函數(shù)中使用允諾的理由是合理的。我希望整個博客在建設(shè)階段之后都能正常運行。但是,在調(diào)用之后,似乎幾乎無法立即訪問該對象。new.我一直在爭論用一些類似于engine.start().then()或engine.init()而不是回報承諾。但這些看起來也很難聞。編輯:這是在一個Node.js項目中。
讓構(gòu)造函數(shù)返回承諾是不好的做法嗎?
紅顏莎娜
2019-06-06 13:55:20