📝

【TypeScript】Promiseの書き方

2022/10/18に公開

TypeScriptの非同期でかなり詰まったのでメモ。
説明は今度追記します…

Promise の書き方

const promise = new Promise(
  resolve: (str : string) => void,
  reject: (err: string)) => {
	// resolve / reject 関数がPromiseの運命を決定します
  if () {
    resolve("success!");
  }else {
    reject("error!");
  }
});

呼び出し方

promise(resolve: (str: string) => {
		// 成功した場合の処理
		console.log(str);
	},
	reject: (err: string) => {
		// 失敗した場合の処理
		console.log(err);
	}
}

// thenを使った書き方
promise.then(
  (str) => {
    console.log(str);
  },
  (err) => {
    console.log(err);
  }
);

promis.then((str) => {
    console.log(str);
  }).catch((err) => {
    console.log(err);
  });

asyc/await を使った書き方

const hoge = async (): Promise<string> => {
	await 処理;
	return "done";
}
const hoge = async () => {
	return new Promise((resolve, reject) => {
    if() {
      resolve(hoge)
    } else {
      reject(error)
    }
	});
}

// resolveの値が返ってくる
// rejectの値はエラーになる
const result = await hoge();

// await~catchでrejectの値を受け取れる
const result = await hoge().catch(error => {});

Discussion