簡體   English   中英

在TypeScript中,如何在類構造函數中使用外部函數並從回調中獲取值並分配給屬性

[英]In TypeScript, How can I use a external function in a class constructor function and get value from callback and assign to a property

我如何為a分配“ aaa”?我不能在此類中編寫getStr(),因為它形成了一個庫

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

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

如果您有回調,我假設我們正在談論異步執行。 在這種情況下,答案是

你不能

根據定義,構造函數必須返回所構造類的實例。 這個很重要。 不是Promise<MyClass> ,不是Promise<void> 因此,您嘗試存檔的內容是不可能的。

請不要幻想您可以在構造函數中調用異步函數,它會完成工作。 它會在構造函數代碼執行完畢后的某個時候完成,或者可能不會完成-取決於同時執行的其他代碼。 這種不確定性-使得這種方法極其危險且不可預測。

您可以執行的操作-通常在需要執行需要異步調用的實例的初始化時-創建一個單獨的init(): promise<void>函數,可以正確地調用它並等待它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM