在TypeScript中,如何在类构造函数中使用外部函数并从回调中获取值并分配给属性

时间:2017-04-16 04:40:13

标签: typescript

如何将“aaa”分配给??我不能在此类中编写getStr()因为它构成了一个库

class a {
    aaa: String
    constructor(aaa) {
        getStr(function(str) {
            // this.aaa = str
        })
    }
}

function getStr(callback) {
    callback("aaa")
}

1 个答案:

答案 0 :(得分:0)

如果你有回调我假设我们正在谈论异步执行。在这种情况下答案是

你不能

根据定义,构造函数必须返回构造类的实例。这个很重要。不是Promise<MyClass>,不是Promise<void>。因此,您尝试存档的内容是不可能的。

请不要遵循可以在构造函数中调用异步函数的错觉,它将完成工作。它将在构造函数代码完成执行后的某个时间完成,或者可能不会 - 取决于与其一起执行的其他代码。这种不确定性 - 使这种方法非常危险和不可预测。

您可以做什么 - 通常如果您需要对需要异步调用的实例执行某些初始化 - 您可以创建一个可以正确调用和等待的单独init(): promise<void>函数。