【发布时间】:2021-04-21 17:19:42
【问题描述】:
我正在尝试运行命令行工具并解析来自stdout 的输出,以便在 VSCode 扩展中使用它做一些有用的事情。我正在尝试创建 Flow 对象(在代码的其他地方定义)并将它们附加到 this.flows;但是,该函数在设置 this.flows 之前返回。
getChildren(element?: vscode.TreeItem): Thenable<Flow[]> | Flow[] | null {
if (element === undefined) {
exec(commandToRun, (error, stdout, stderr) => {
let flowJson = JSON.parse(stdout); // output is expected in json format
for (let i =0; i < jsonString.length; ++i) {
let f = new Flow(jsonString[i][name], flowJson[i]['description'], vscode.TreeItemCollapsibleState.None);
this.flows.push(f);
}
}
}
return new Promise<Flow[]>(resolve => resolve(this.flows));
}
我认为它需要使用await 或then,但不知道如何合并它们以达到预期的效果。
非常感谢任何帮助,干杯!
【问题讨论】:
标签: typescript visual-studio-code async-await vscode-extensions thenable