What is the correct way to reload widget timeline in iOS 17 for interactive widgets manually?

I want a button in my interactive widget, which on tapping will get some result from API and then reload the widget timeline on returning .result(). But since this operation can take time I want that my button state should get disabled so that no more interaction is allowed and this should happen instantly.

What I want to know is that, is there a way we can reload the timeline on tapping the button (via perform method of app intent) before the result is returned, which will show my results instantly and disable my button, and once the network call finishes, the result() block can hit back, further continuing to reload the timeline.

I am also wondering if WidgetCenter.shared.reloadTimline(ofKind: ) is going to work if my app is not running in the background, and if my code will successfully hit this method.

What is the correct way to reload widget timeline in iOS 17 for interactive widgets manually?
 
 
Q