回答編集履歴

1

非同期処理の解決方法の追記

2018/05/16 01:02

投稿

og24715
og24715

スコア832

test CHANGED
@@ -1 +1,47 @@
1
- chrome.storage.sync.get がコールバックを引数に取ることから分かる通り、非同期処理されているからでしょう。
1
+ `chrome.storage.sync.get` がコールバックを引数に取ることから分かる通り、非同期処理されているからでしょう。
2
+
3
+
4
+
5
+ 追記
6
+
7
+
8
+
9
+ どうしてもコールバック処理したくないのであれば `chorme.storage.sync.get` をPromiseでラップした独自関数を作るのが良いと思います。
10
+
11
+ 非同期処理に関しては JS の肝になるので一度しっかりと学習して理解を深めたほうが良いと思います。
12
+
13
+
14
+
15
+ ```js
16
+
17
+ // Promise でラップ
18
+
19
+ const getSyncStorage = (key = null) => new Promise(resolve => {
20
+
21
+ chrome.storage.sync.get(key, resolve);
22
+
23
+ });
24
+
25
+
26
+
27
+ getSyncStorage()
28
+
29
+ .then(({ pattern }) => {
30
+
31
+ console.log(pattern); // > "03-1234-5678"
32
+
33
+ });
34
+
35
+
36
+
37
+ // おまけ: async/await パターン
38
+
39
+ (async () => {
40
+
41
+ const { pattern } = await getSyncStorage();
42
+
43
+ console.log(pattern); // > "03-1234-5678"
44
+
45
+ })();
46
+
47
+ ```