## 事象 `app.metadataCache.unresolvedLinks[ファイルパス]` のようにして[[未解決リンク (Obsidian)|未解決リンク]]情報にアクセスしようとしても、起動直後は結果が[[null (JavaScript)|null]]になる。つまり、`app.metadataCache.unresolvedLinks` が空 (`{}`) になっている。 ### 環境 | 対象 | バージョン | | ------------ | ----- | | [[Obsidian]] | 1.8.2 | | インストーラー | 1.7.7 | ## 原因 起動直後は[[メタデータ (Obsidian)|メタデータ]]が収集しきれておらず、[[メタデータ (Obsidian)|メタデータ]]が空だから。 ## 解決方法 `app.metadataCache.on("resolved", ...)` で[[メタデータ (Obsidian)|メタデータ]]が解決してから処理を実行する。 ```ts const cacheResolvedRef = this.app.metadataCache.on("resolved", async () => { // app.metadataCache.unresolvedLinks を使った処理をここに書く // resolvedは何度も発動するため、一度実行されたら無効化する this.app.metadataCache.offref(cacheResolvedRef); }); ```