Skip to content

Instantly share code, notes, and snippets.

View RusJstudent's full-sized avatar

Sergey RusJstudent

View GitHub Profile
@RusJstudent
RusJstudent / sample.md
Last active July 12, 2024 05:02
Что происходит, если из promise.then вернуть другой промис?

Пример: Есть три цепочки promise. Если посмотреть на первый метод .then каждой из них, то в первой возвращается промис, во второй - thenable-объект, а в третьей - примитив. Попробуйте угадать, в каком порядке числа выведутся в консоль:

class Thenable {
    then(resolve, reject) {
        resolve();
    }
}

new Promise(resolve => resolve())
 .then(() => {
@RusJstudent
RusJstudent / promise.md
Last active July 11, 2024 04:39
Promise с точки зрения ECMAScript

Шпаргалка по внутреннему устройству промисов (ECMAScript).

Описанные здесь алгоритмы - моя интерпретация спецификации, так как некоторые шаги опущены/видоизменены для простоты.

Оболочка Promise

Конструктор Promise - Promise ( executor )

1. Если Promise вызван без new, выбросить TypeError.
2. Если executor не является функцией, выбросить TypeError.
3. Создать объект promise со свойствами: