Skip to content

Instantly share code, notes, and snippets.

View sdrjs's full-sized avatar

Sergey sdrjs

View GitHub Profile
@sdrjs
sdrjs / 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 со свойствами:
@sdrjs
sdrjs / sample.md
Last active September 22, 2024 08:07
Что происходит, если из promise.then вернуть другой промис?

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

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

new Promise(resolve => resolve())
 .then(() => {