Axiosでレスポンスヘッダが取得できなかった (CORSなAPI)
標準的なレスポンスヘッダ以外の場合は、APIが返すレスポンスヘッダに Access-Control-Expose-Headers: ${レスポンスヘッダ名}
を追加する必要がある。
標準的なレスポンスヘッダ以外の場合は、APIが返すレスポンスヘッダに Access-Control-Expose-Headers: ${レスポンスヘッダ名}
を追加する必要がある。
console.log()
じゃなくて console.dir(obj, { depth: null })
を使う。JSON.stringify(obj, null, 2)
の戻りを console.log()
で出すと綺麗にフォーマットできる。[2024-01-28追記] Node.jsの場合、v15以降なら timersPromises.setTimeout でできます。
const { setTimeout } = require('timers/promises');
(async() => {
console.time();
await setTimeout(3000);
console.timeEnd();
// -> default: 3.004s
})();
import { setTimeout } from 'timers/promises';
それ以外の場合、Promise化した setTimeout()
でsleepのようなことができます。普通に .then()
で使ってもただの setTimeout()
でしかないので、await
をつけて呼びます。
/**
* sleepもどき
* @param {Number} ms ミリ秒
* @returns {Promise}
*/
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
(async() => {
console.time();
await sleep(3000);
console.timeEnd();
// -> default: 3002.119140625 ms
})();
const sleep = (ms: number): Promise<void> => new Promise(resolve => setTimeout(resolve, ms));
ブラウザでもNode.jsでも同じです
みたいな状況になったので
JavaScriptの、ここらへん同士の変換方法をむやみやたらにまとめてます。
[2022-02-27 追記] 全体の見直しを行いました。また、コメントを参考に一部の関数 (uint8ArrayToUint16Array, uint8ArrayToUint32Array) を修正しました。ご指摘くださりありがとうございました。
MochaとChaiでなんでもテスト 6本目です。
今回は、ブラウザでしか動かないJavaScriptのコードをMochaとChaiでテストしてみます。