Javascript/TypeScript:如何在同一范围内的return语句之后直接运行代码?

Javascript/TypeScript:如何在同一范围内的return语句之后直接运行代码?,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,首先:可能吗?我对这一点记忆犹新,但我似乎无法很好地表达我的问题,让google/stack给我一个如何做的想法 给定此代码(自定义管道内的变换函数-角度2-): 如何获取代码this.updatePage.emit()在我的return语句之后立即发生 亲切的问候每一个人。欢迎提供有关如何表述此问题的提示,以便我进一步搜索 正如Nina Scholz所说,return终止函数。因此,您可以使用setTimeout延迟执行代码: transform(statuses: Status[], tes

首先:可能吗?我对这一点记忆犹新,但我似乎无法很好地表达我的问题,让google/stack给我一个如何做的想法

给定此代码(自定义管道内的变换函数-角度2-):

如何获取代码this.updatePage.emit()在我的return语句之后立即发生


亲切的问候每一个人。欢迎提供有关如何表述此问题的提示,以便我进一步搜索

正如Nina Scholz所说,return终止函数。因此,您可以使用setTimeout延迟执行代码:

transform(statuses: Status[], test: string): Status[] {
    setTimeout(() => {
        //Code to be executed after return has happened
        this.updatePager.emit();
    }, 500)

    return statuses.filter(status => status.Id === 1);
} 

这可能适用于您,在下一个应用程序中执行代码,用
setTimeout 0
勾选

transform(statuses: Status[], test: string): Status[] {
    //Code to be executed in the next tick
    setTimeout( ()=> this.updatePager.emit(), 0 );

    return statuses.filter(status => status.Id === 1);
}
这应该行得通

  transform(statuses: Status[], test: string): Status[] {

    setTimeout(function(){ this.updatePager.emit(); }, 1000); //Adjust time here.

    return statuses.filter(status => status.Id === 1);

  }   

我建议在返回函数之前创建一个事件。

return
终止函数。在
return
之后不能执行任何操作
setTimeout(func,0)
可能是下一次勾选时要执行的情况。这似乎可以做到这一点。然而,我觉得它很脏。如果在下一个勾选中,return语句还没有完成呢?(我想到的是非常长的列表)由于javascript通常在单个线程中运行,所以每个计时点都有执行队列等待。是的,
return
语句将在下一个勾号之前完成,
setTimeout 0
只需将代码推入下一个勾号执行队列。
  transform(statuses: Status[], test: string): Status[] {

    setTimeout(function(){ this.updatePager.emit(); }, 1000); //Adjust time here.

    return statuses.filter(status => status.Id === 1);

  }