コンテンツ⇄バックグラウンド間の通信のためにruntime.onMessageを調べていたら、気になる記述を見つけました。
どの部分?
ここ。この記事を執筆時点でのスクリーンショット です。
後者のコードがシンタックスエラーになるというのは置いといて、パッと見た時に「
async
関数とPromise
を返す関数だと何か挙動が違うの?」と混乱しました。実態は同じはずなのに、と。これは言葉足らずというか、明記されていないけどリスナー関数がPromiseを返すとそれ以降のリスナーは呼び出されないという仕様があるんだと推測。
つまり、前者のコードは常に
Promise
を返すので他のリスナー関数は呼び出されないんではないかと。そして後者のコードは処理しない場合は何も返さない(
undefined
を返す)ので、data.type
がhandle_me
以外の場合は後続のリスナー関数が呼ばれるんではないかと。ちょっと日本語訳が分かりにくかった(原文の直訳)ので、上記の推測が正しいのを確認したらそのうち修正しておきます。
どんな拡張機能作ってるの?
それは言えません。
クッソ個人的なものなので、多分誰の役にも立ちません。
0 件のコメント:
コメントを投稿