0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

JavaScriptでPromiseの処理時間を簡単に測る方法

Posted at

はいさい!ちゅらデータぬオースティンやいびーん!

概要

JavaScriptでPromiseの処理時間を簡単に測る方法を紹介します。

今回の記事はほぼ備忘に近い記事なので、ささっといきましょうね!

コード

Promise構文を使って、どのようなPromiseでも測れるようにします!

TypeScriptの型チェックをしてもらえるように、また、VS CodeなどのIDEでIntellisenseの推測もしてもらえるようにJSDocsも添えておきます。

//@ts-check
/**
 * Computes the time taken to execute a promise.
 * The result is printed to the console and returned when the promise is resolved.
 *
 * @example
 * // prints to console.
 * timeIt()
 * @param {Promise<any>} promise
 * @returns {Promise<number>}
 */
const timeIt = (promise) =>
  new Promise((resolve) => {
    const startTime = Date.now();
    Promise.resolve(promise).finally(() => {
      const endTime = Date.now();
      const timeTaken = endTime - startTime;
      const timeTakenInSeconds = timeTaken / 1000;
      console.log(`Finished in: ${timeTakenInSeconds} seconds;`);
      resolve(timeTaken);
    });
  });

試してみる

非常に簡単なコードですが、以下のように、ブラウザのコンソールに落とすだけで、Fetchリクエストにどれほどの時間がかかっているのか簡単に測れます。

筆者が大好きなダミーAPIを使って試してみましょう!

ezgif.com-gif-maker (13).gif

まとめ

いかがでしょうか?Promiseで遊ぶ楽しさを、筆者と同じように嗜めましたでしょうか?

JavaScriptはやはり楽しい言語だなあと日々思います。

今回の記事はあくまで備忘なので、浅薄なところをお許しください!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?