javascript エラー「Uncaught TypeError: xxx(…).then is not a function」の解決方法

javascript エラー「Uncaught TypeError: xxx(…).then is not a function」の解決方法

javascriptで、エラー「Uncaught TypeError: xxx(…).then is not a function」が発生した場合の原因と解決方法を記述してます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome106.0.5249.103

エラー内容

以下の、コードにて発生。

function add(x,y){
  return x + y;
};

add(1,2).then(value => {
  console.log(value);
});

エラーメッセージ

Uncaught TypeError: add(...).then is not a function

画像

firefox105の場合でも同じエラーが発生します。

Uncaught TypeError: add(...).then is not a function

画像

safari15.5では、以下のエラーとなります。

TypeError: add(1,2).then is not a function. (In 'add(1,2).then(value => {
  console.log(value);
})', 'add(1,2).then' is undefined)

画像

原因

関数が「Promise」ではないため

解決方法

「Promise」を使用する

function add(x,y){
  return new Promise((resolve, reject) => {
    resolve(x + y);
  });
};

add(1,2).then(value => {
  console.log(value); // 3
});

実行結果