質問編集履歴
2
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
DioパッケージのCancelTokenのcancel()を実行してもAPI通信が中断されない
|
body
CHANGED
File without changes
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
2種類のAPI通信をFutureProvider.autoDisposeに書いています。
|
3
|
+
2種類のAPI通信を`FutureProvider.autoDispose`に書いています。
|
4
4
|
```
|
5
5
|
final getLibraryProvider =
|
6
6
|
FutureProvider.autoDispose<List<ShowLibrary>>((ref) async {
|
@@ -22,31 +22,32 @@
|
|
22
22
|
});
|
23
23
|
```
|
24
24
|
|
25
|
-
画面遷移したら実行され、popしたら処理を中断する、という動作を期待しています。
|
25
|
+
画面遷移したら実行され、`pop`したら処理を中断する、という動作を期待しています。
|
26
|
-
前の画面のTextButtonのonPressで画面遷移と同時に_isbnの値が更新され、それを検知し以降の処理を実行する狙いです。
|
26
|
+
前の画面の`TextButton`の`onPress`で画面遷移と同時に`_isbn`の値が更新され、それを検知し以降の処理を実行する狙いです。
|
27
27
|
一つのトークンで全ての処理が中断される、という認識です。
|
28
28
|
|
29
29
|
### 発生している問題
|
30
|
-
popしてもキャンセルされず処理が続いてしまいます。
|
30
|
+
`pop`してもキャンセルされず処理が続いてしまいます。`onDispose`内の処理は実行されるのにキャンセルがされない状況です(`print()`で出力した文字列は確認できました)。
|
31
31
|
|
32
32
|
### 試したこと
|
33
|
-
・レポジトリではなく
|
33
|
+
・レポジトリではなくFutureProvider.autoDispose`内に直接処理を書いて実行→変化なし
|
34
|
-
・レポジトリにキャンセルされたかどうかを表すisCanceledというbool値を入れ、通信2に入る前にtrueならばnullを返す。⇨ キャンセルされたら必ずnullが入るのが嫌なのと、あえて複雑なやり方をしている気がするためやめました。
|
35
34
|
|
35
|
+
・レポジトリにキャンセルされたかどうかを表す`isCanceled`というbool値を入れ、通信2に入る前に`true`ならば`null`を返す。⇨ キャンセルされたら必ず`null`が入るのが個人的に嫌なのと、あえて複雑なやり方をしている気がするためやめました。
|
36
|
+
|
36
37
|
### 注意点
|
37
38
|
レポジトリ内のコードが大量にあるため混乱を招くと思い、書いておりません。
|
38
39
|
コメントいただければ追記いたします。
|
39
40
|
### 補足情報(FW/ツールのバージョンなど)
|
40
41
|
```
|
41
42
|
[✓] Flutter (Channel master, 2.6.0-12.0.pre.522, on macOS 11.6 20G165 darwin-x64, locale ja-JP)
|
42
|
-
• Flutter version 2.6.0-12.0.pre.522 at /Users/
|
43
|
+
• Flutter version 2.6.0-12.0.pre.522 at /Users/username/flutter_dev/flutter
|
43
44
|
• Upstream repository https://github.com/flutter/flutter.git
|
44
45
|
• Framework revision 78689d347c (2 weeks ago), 2021-10-29 08:33:41 +0200
|
45
46
|
• Engine revision ddf4bd598e
|
46
47
|
• Dart version 2.15.0 (build 2.15.0-262.0.dev)
|
47
48
|
|
48
49
|
[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
|
49
|
-
• Android SDK at /Users/
|
50
|
+
• Android SDK at /Users/username/Library/Android/sdk
|
50
51
|
• Platform android-31, build-tools 31.0.0
|
51
52
|
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
|
52
53
|
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
|
@@ -70,7 +71,7 @@
|
|
70
71
|
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
|
71
72
|
|
72
73
|
[✓] VS Code (version 1.47.3)
|
73
|
-
• VS Code at /Users/
|
74
|
+
• VS Code at /Users/username/Applications/Visual Studio Code.app/Contents
|
74
75
|
• Flutter extension can be installed from:
|
75
76
|
???? https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
|
76
77
|
|