Отслеживание / регистрация обещаний - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь найти решение для отслеживания обещаний.

В проекте, над которым я работаю, есть некоторые асинхронные задачи, которые не ожидаются / не выполняются. Я пытаюсь найти такие случаи, поскольку эти висящие вызовы мешают тестовым наборам.

Одним из моих подходов было шпионить за глобальным конструктором Promise с помощью шпионов SinonJS. Но при переносе конструктора свойства объекта Promise скрываются / перезаписываются шпионом, что делает Promises непригодным для использования.

const spier = sinon.spy(global, 'Promise')

Возможно, есть какое-то глобальное отслеживание, которое я мог бы использовать (например, цикл обработки событий или общий массив живых обещаний).

Или, может быть, кто-то немного разбирается в Обещаниях и может порекомендовать альтернативную точку наблюдения за доступными внутренними функциями Обещания.

Хотелось бы услышать, были ли у вас аналогичные потребности и ваши подходы.

1 Ответ

0 голосов
/ 30 октября 2018

Обезьяна может исправить конструктор обещаний следующим образом:

const global = window; // (in browser...)
const OldPromise = global.Promise; 
global.Promise = class Promise extends OldPromise {
    constructor(executor) {
    // do whatever you want here, but must call super()
    console.log('hello, promise');

    super(executor); // call native Promise constructor
  }
};

Promise.resolve();

Источник: Обезьяна-патч Конструктор Promise

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...