はいさい!ちゅらデータぬオースティンやいびーん!
概要
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を使って試してみましょう!
まとめ
いかがでしょうか?Promiseで遊ぶ楽しさを、筆者と同じように嗜めましたでしょうか?
JavaScriptはやはり楽しい言語だなあと日々思います。
今回の記事はあくまで備忘なので、浅薄なところをお許しください!