Опция timeout
- это собственное расширение node-fetch
, которое не является частью стандарта извлечения WhatWG .
Когда он был построен, AbortController
еще не существовало в стандарте, поэтому библиотека предложила timeout
в качестве обходного пути.
При добавлении нестандартной функции в библиотеку, которая должна максимально точно реализовать стандарт, возникают проблемы:
- Дополнительные функции имеют тенденцию «выползать» из библиотеки, когда люди ее используют: если они используют эту функцию, код потенциально не предназначен для будущего: если им по какой-то причине придется заменить библиотеку, их код может не совместим с другими реализациями стандарта, которые не будут иметь добавленной функции. Это форма технического долга .
- Другой код может ожидать, что реализация будет точно соответствовать стандарту и не сможет скомпилироваться, например, при использовании TypeScript. В этом случае библиотека не может быть использована.
- Теперь, когда
AbortController
существует, библиотека должна поддерживать два способа прерывания запросов, что означает больше работы по обслуживанию и больше потенциальных ошибок .
Не поощряя использование этой нестандартной функции, меньше кода будет нарушено, когда авторы в конечном итоге устареют и удалят функцию.