Promise.try()
Promise.try() は渡された関数を実行し、同期的に例外をスローしても rejected Promise として扱います。Promise.resolve().then(fn) の改善版です。
概要
Promise.try() は渡された関数を実行し、同期的に例外をスローしても rejected Promise として扱います。Promise.resolve().then(fn) の改善版です。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 128 | 128 | 134 | 18.2 | 128 | 18.2 | |
基本構文
JAVASCRIPT
// Both synchronous and asynchronous functions are acceptable
Promise.try(() => {
if (cached) return cachedValue; // Return synchronously
return fetch('/api/data'); // Return a Promise
}).then(result => console.log(result)); ライブデモ
Start a chain from Promise.try
Use Promise.try when available, otherwise fall back to Promise.resolve().then().
JavaScript
出力
「実行」ボタンを押してください
Capture sync exceptions
Normalize thrown synchronous errors into a rejected promise chain.
JavaScript
出力
「実行」ボタンを押してください
Mix sync and async steps
Start from sync setup and continue into asynchronous work without branching.
JavaScript
出力
「実行」ボタンを押してください
実務での使いどころ
-
Promise.try() の活用
同期・非同期関数を統一的に Promise でラップするメソッド。エラーハンドリングを一元化。
注意点
- 古いブラウザ(IE等)では対応していない。対象ブラウザを確認すること。
アクセシビリティ
- JavaScript による動的更新時は、aria-live リージョンで変更をスクリーンリーダーに通知する。
参考リンク
Powered by web-features