如何在使用REST API数据的VSCODE活动栏中创建树



我是JavaScript的新手,我的构造是在Vscode中创建树景。

创建树视图时,如果我将JSON直接传递到树时,它会创建树,但是当我通过调用REST API传递数据时,未创建树。

这是因为在从REST API检索数据之前,空数据变量已传递给树。

如何解决这个问题?

预先感谢

class name {
gettreeItem(element){
//code
}
getChildren(element) {
if(element){
//some code here
}else{
return Promise.resolve(this.getDeps(restcall()))
}
restcall(){
var options = { 
        method: 'GET',
        url: 'url',
        headers: 
          { 
            Authorization :'Basic '+ Buffer.from('uid:pas').toString('base64') 
          } 
    };
return new Promise(function(resolve,reject){
        request.get(options,function(err, resp, body){
            if (err) {
                reject(err);
            } else {
                return resolve(JSON.parse(body));
            }
})
)
}
getDeps(JsonData){
//But here the Json Data is empty beacuse this function is called before the data is retrived from the rest api
}
}

我假设您已经拥有可以生成树视图的工作原型。现在,一旦您从REST调用中获取数据,则必须刷新树视图。

private _onDidChangeTreeData: EventEmitter<X | undefined> = new EventEmitter<X | undefined>();
readonly onDidChangeTreeData: Event<X | undefined> = this._onDidChangeTreeData.event;
refresh(): void {
    this._onDidChangeTreeData.fire(undefined);
}

用您的数据类型替换X,一旦您的数据获取完成,请致电我们上面制定的刷新方法。这将解决您的问题。

最新更新