Related Promises

在我的typescript項目中,我有一個配置和一個控制器類:

class Config {
    public Ready: Promise<any>;
    private logDir: string = 'dir1'; 
    private logFile: string = 'file1';
    private client = new Etcd3();

    constructor(defaultLogDir?: string, defaultLogFile?: string){
        this.Ready = new Promise((resolve, reject) => {
            this.readLogDir().then(res => { this.logDir = res; });
            this.readLogFile().then(res => { this.logFile = res; });
            resolve(undefined);
        })
    }
}
class Controller {
    public Ready: Promise<any>;
    public config: Config = new Config();
    private logDir: string = 'dir2'; 
    private logFile: string = 'file2';

    constructor(){
        this.Ready = new Promise((resolve, reject) => {
            this.config.Ready.then(() => {
                this.logDir = this.config.getLogDir();
                this.logFile = this.config.getLogFile();
                resolve(undefined);
            })
        })
    }
}

由于配置類必須與I/O和服務器連接一起工作,因此會使用(準備好)承諾來確定該類何時可用,因此,該類始終按如下方式調用:config.then(() => {code})。這種工作方式經過測試,并在隔離狀態下正常工作。

現在,控制器類以同樣的方式工作,因此,當正確地調用它時:controller.then(() => {code}),它應該意味著配置對象也準備好了,但事實并非如此,因為控制器atributes的值是dir2和file2。

我的推理或代碼有什么錯誤?

? 最佳回答:
new Promise((resolve, reject) => {
   this.readLogDir().then(res => { this.logDir = res; });
   this.readLogFile().then(res => { this.logFile = res; });
   resolve(undefined);
})

這創建了一個新的承諾,它啟動了一些異步內容,然后立即解析為未定義。在你打電話給resolve之前,你沒有等待任何東西。

因為您手頭已經有了承諾,所以根本不需要使用new Promise構造函數。只有當您將不使用承諾的內容轉換為使用承諾的內容時,才真正需要該構造函數。您可以創建兩個承諾來讀取logDir和logFile,然后使用Promise.all將它們組合起來:

this.ready = Promise.all([
  this.readLogDir().then(res => { this.logDir = res; }),
  this.readLogFile().then(res => { this.logFile = res; })
]);
主站蜘蛛池模板: 狠狠综合久久AV一区二区三区 | 美女福利视频一区二区| 精品人妻少妇一区二区三区| 亚洲高清一区二区三区电影| 爆乳无码AV一区二区三区| 波多野结衣中文一区二区免费| 精品亚洲一区二区三区在线播放| 亚洲国产成人一区二区三区| 成人中文字幕一区二区三区| 国产aⅴ一区二区| 国产精品一区三区| 亚洲午夜一区二区三区| 久久国产精品免费一区二区三区| 日韩一区二区在线观看视频| 波多野结衣一区二区三区高清av | 国产aⅴ一区二区| 国产一区二区精品久久凹凸| 精品福利视频一区二区三区| 成人精品视频一区二区三区不卡| 少妇人妻偷人精品一区二区| 武侠古典一区二区三区中文| 日本v片免费一区二区三区| 日韩视频在线一区| 精品一区二区三区免费毛片| 免费萌白酱国产一区二区| 内射少妇一区27P| 精品国产免费一区二区三区| 真实国产乱子伦精品一区二区三区 | 秋霞午夜一区二区| 制服中文字幕一区二区| 无码一区二区三区在线观看| 乱码精品一区二区三区| 无码播放一区二区三区| 成人免费视频一区二区三区| 国产一区二区在线|播放| 无码人妻一区二区三区精品视频| 91福利国产在线观看一区二区| 国产一区二区精品尤物| 日本伊人精品一区二区三区| 日韩一区二区视频在线观看| 国产成人精品亚洲一区|