gpt4 book ai didi

asynchronous - TypeScript/Angular 2 - 在另一个完成后调用一个函数

转载 作者:太空狗 更新时间:2023-10-29 18:07:17 25 4
gpt4 key购买 nike

我有两个函数想调用,但我只想在第一个函数完成后调用第二个函数。我该怎么做?

第一个函数:

getDirectorySubfolders(node: any) {
console.log('Home:getDirectorySubfolders() entered...');

this._sdiService.getDirectoriesAtPath("Desktop")
.subscribe(res => {
this.nodeChildren = res;
});
}

第二个函数:

getChildren(node: any) {
console.log('Home:getChildren entered..');
return new Promise((resolve, reject) =>
{
setTimeout(() => resolve(this.nodeChildren.map((c) =>
{
return Object.assign({}, c, {});
})), 1000);
});
}

最佳答案

有两种简单的方法可以在第一个函数完成后调用第二个函数 - 您可以在 this.nodeChildren = res; 下进行,或者使用 finish 参数 () :

getDirectorySubfolders(node: any) {
console.log('Home:getDirectorySubfolders() entered...');

this._sdiService.getDirectoriesAtPath("Desktop")
.subscribe(
res => {
this.nodeChildren = res;
this.getChildren(); <-- here
},
err => {
console.log(err);
},
() => {
this.getChildren(); <-- or here
});
}

当您调用getDirectorySubfolders() 函数时,getChildren() 将在getDirectorySubfolders() 完成后被调用。请记住,如果您使用 finish 参数,即使发生错误,该函数也会被调用。

关于asynchronous - TypeScript/Angular 2 - 在另一个完成后调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40486765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com