This repository was archived by the owner on Dec 12, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 50
Add contextObject to function subscribe #36
Copy link
Copy link
Open
Description
Considering this situation: Display a dialog, and then use AsyncFuture to send a network request, and the result will be displayed on the interface when the network request responds. I used the following logic (pseudo code):
Dialog::request()
{
auto future = ... ; // request data from network
observe(future).subscribe([=](QString data){ // onComplete
ui->label->setText(data);
},
[=](){ // onCanceled
ui->errorLabel->setText("error");
});
}But before the network reply, the user may close the dialog. In this case, the ui->label in onComplete has been destroyed, causing a crash.
Is there any plan to add contextObject to function subscribe? So I can modify code like this
Dialog::request()
{
auto future = ... ; // request data from network
- observe(future).subscribe([=](QString data){ // onComplete
+ observe(future).subscribe(this, [=](QString data){ // onComplete
ui->label->setText(data);
},
[=](){ // onCanceled
ui->errorLabel->setText("error");
});
}Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels