2017-06-26 12 views
-1

2017年現在、ウェブブラウザの現在のバージョンはすべてES6の約束をサポートしています。新しいクライアントサイドのjavascriptライブラリのコールバックまたは約束?

私は今、ブラウザ側のjavascriptライブラリを作成していましたが、コールバックスタイルの関数とプロミスの使用の賛否両論(または関連する考慮事項)は何ですか?コールバックの使用を検討することはまだ選択肢ですか?

注:ライブラリの操作はI/Oに関連しているため、非同期操作がうまく収まるため、同期操作はオプションではないと思います。

+0

約束を使用する際の主な考慮事項は、エラーが発生することです。また、コードの複雑さを削減Webアプリケーションを開発している場合でも、すべてのブラウザがネイティブにサポートすることは保証されていません。まだモバイルで使用されているレガシーブラウザがたくさんあります。 – charlietfl

答えて

2

もちろん、約束を使用してください。これは、非同期のものを扱うための、はるかに優れた概念的なフレームワークです。そうしないと、90%のユーザーが最初に行うことは、お約束の中にAPIをラップすることであり、そうするようにしたくないのですか?

理論的には、特定のAPIがコールバックまたは約束のような仕方で動作するかどうかにかかわらず、callbackパラメータの有無を制御するデュアルモードアプローチを採用することができます。事前予約制の日数のルートを持つ多くの図書館がこのルートをとっています。この方法を新しいライブラリに使用したいと思うのは疑いありません。

ネイティブの約束が気に入らない、または使用できない場合に備えて、ユーザーの選択した約束ライブラリと統合する機能を備えたライブラリを発送することができます。ユーザーはinitNcasasLibrary(Promise)のようなものでライブラリを初期化します。または、ユーザーがPromiseを利用できるようにするには、ブラウザがないブラウザをターゲットにしている場合は必ずpolyfillをインクルードします。

+0

これは、あくまで 'await/async'と同時に動作することに言及します。 –

関連する問題