Tìm kiếm trang web

angularjs - Javascript/TypeScript: Làm thế nào để chạy mã ngay sau câu lệnh return trong cùng một phạm vi?


Trước hết: Có khả thi không? Tôi có một ký ức mơ hồ về việc điều này có thể thực hiện được nhưng tôi dường như không thể diễn đạt câu hỏi của mình đủ rõ để Google/Stack có thể cho tôi một ý tưởng về cách làm.

Cho đoạn mã này (hàm transform trong một pipe tùy chỉnh - Angular 2 -):

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

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

    //Code to be executed after return has happened
    this.updatePager.emit();
  }   

Làm thế nào để tôi thực hiện đoạn mã this.updatePager.emit(); ngay sau câu lệnh return của mình.

Trân trọng gửi đến mọi người. Luôn hoan nghênh mọi mẹo về cách trình bày câu hỏi này để tôi có thể tìm kiếm thêm!

Câu trả lời #1

Điều này nên hoạt động.

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

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

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

  }   

Câu trả lời #2

Điều này có thể hiệu quả với bạn, thực thi mã trong lượt ứng dụng tiếp theo với 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);
}

Bài viết liên quan