質問するログイン新規登録

回答編集履歴

1

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

2018/05/16 01:02

投稿

og24715
og24715

スコア832

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