猿问

在类中使用异步的ajax请求

我想创建一个类,实例化一个对象,对象上会有一系列需要的数据

现在有一个问题,其中某一个字段的数据需要通过网络请求才能获取

我在构造函数上这么写:


class A {

    constructor() {

        // 这个xxxMethod是一个异步方法

        // this.param = this.xxxMethod()

        // 如果用Promise

        this.xxxMethod().then((res)=>{

            this.param = res

        })

    }

    xxxMethod() {

        return new Promise((resolve)=>{

            // wx.request.....省略 resolve(res)

        })

    }

}

这样的话在实例化之后不能马上得到param,我想通过一个类去生成这一系列我想要的数据

在小程序中,好像不能使用async,这么写的话可能需要在调用的时候额外写一些代码,觉得有些奇怪


我想问的是:


在构造函数中返回一个Promise对象是不是可行的方法?

或者是否有更好的方案去实现该功能?

还是只能是通过普通函数的调用去写?


扬帆大鱼
浏览 482回答 3
3回答

慕斯王

类的实例给一个异步获取数据的方法。

LEATH

构造函数也可以传参的,你可以把异步函数取到的值作为参数传入,拿到值后再new

慕码人2483693

建议拿到值之后再 new,异步执行构造函数是相当差的设计…
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答