鍍金池/ 問答/HTML/ 在類中使用異步的ajax請求

在類中使用異步的ajax請求

我想創(chuàng)建一個(gè)類,實(shí)例化一個(gè)對象,對象上會有一系列需要的數(shù)據(jù)
現(xiàn)在有一個(gè)問題,其中某一個(gè)字段的數(shù)據(jù)需要通過網(wǎng)絡(luò)請求才能獲取
我在構(gòu)造函數(shù)上這么寫:

class A {
    constructor() {
        // 這個(gè)xxxMethod是一個(gè)異步方法
        // this.param = this.xxxMethod()
        // 如果用Promise
        this.xxxMethod().then((res)=>{
            this.param = res
        })
    }
    xxxMethod() {
        return new Promise((resolve)=>{
            // wx.request.....省略 resolve(res)
        })
    }
}

這樣的話在實(shí)例化之后不能馬上得到param,我想通過一個(gè)類去生成這一系列我想要的數(shù)據(jù)
在小程序中,好像不能使用async,這么寫的話可能需要在調(diào)用的時(shí)候額外寫一些代碼,覺得有些奇怪

我想問的是:

在構(gòu)造函數(shù)中返回一個(gè)Promise對象是不是可行的方法?
或者是否有更好的方案去實(shí)現(xiàn)該功能?
還是只能是通過普通函數(shù)的調(diào)用去寫?
回答
編輯回答
別逞強(qiáng)

建議拿到值之后再 new,異步執(zhí)行構(gòu)造函數(shù)是相當(dāng)差的設(shè)計(jì)…

2017年4月10日 20:08
編輯回答
任她鬧

構(gòu)造函數(shù)也可以傳參的,你可以把異步函數(shù)取到的值作為參數(shù)傳入,拿到值后再new

2018年7月22日 11:52
編輯回答
敢試

類的實(shí)例給一個(gè)異步獲取數(shù)據(jù)的方法。

2018年2月2日 17:42