Вы должны понимать различия.
Объектом, доступным для чтения, является просто любой объект, имеющий метод then.Обещания и возвраты объектов асинхронных функций возможны, но также и ваши собственные.
Объекты асинхронных функций НЕ ПРЕДЛАГАЮТ!Они возвращают Обещание.
Обещания - самый сложный тип предметов для жизни.Они предоставляют дополнительные методы, такие как catch и finally, а также имеют статические методы, такие как Promise.all и Promise.resolve.
Ваш p1 выполняет, поскольку имя метода говорит (обычно) разрешенный Promise со значением thenable.<- обычно разрешается при инициализации, но ожидает, потому что вы предоставляете значение asable в качестве значения </p>
Ваш p2 создает неразрешенный Promise с thenable.then в качестве обратного вызова при разрешении.<- неразрешено при инициализации </p>
Надеюсь, это вам поможет.