Attaches callbacks for the resolution and/or rejection of the Promise.
then<
TResult1 = T,
TResult2 = never
>(
onfulfilled: (value: T) => TResult1 | PromiseLike<TResult1> | null, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2> | null
): Promise<TResult1 | TResult2>