javascript Promiseであるかを判定する

javascript Promiseであるかを判定する

javascriptで、Promiseであるかを判定するサンプルコードを記述してます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 105.0.5195.127

Promiseであるかを判定

Promiseであるかを判定するには、「.then()」と「.catch()」が関数であるかを比較して判定します。

function isPromise(v) {
  if (
    v !== null &&
    typeof v === 'object' &&
    typeof v.then === 'function' &&
    typeof v.catch === 'function'
  ) {
    return true;
  }

  return false;
}

const p = new Promise((resolve, reject) => {
    fs.readFile(path, (err, data) => {
      if (err) {
        reject(err);
      }
      else {
        resolve(data);
      }
    });
  });

const fn = function(){};

const arrowFn = () => {};

console.log(isPromise(p)); // true

console.log(isPromise(fn)); // false

console.log(isPromise(arrowFn)); // false

console.log(isPromise('a')); // false

console.log(isPromise({})); // false

console.log(isPromise([])); // false

console.log(isPromise(null)); // false

console.log(isPromise(undefined)); // false