相关文章
api 实现
resolve 方法
resolve 方法会返回一个以给定值解析后的 Promise 对象。
resolve 方法的参数 value 可能有三种类型:
- value 是一个 Promise;
- value 是一个 thenable;
- value 既不是 Promise 也不是 thenable。
function resolve<T>(value: T | PromiseLike<T>): MyPromise<T> {
// 如果 value 是一个 MyPromise 实例,那么直接返回 value。
if (value instanceof MyPromise) return value;
if (
(typeof value === "object" || typeof value === "function") &&
"then" in value &&
typeof value.then === "function"
) {
// 如果 value 是一个 thenable,将它转换成 MyProm