Никогда раньше не использовал defer
, но мой агент попросил меня использовать defer
с промисами.
На странице отсрочки Mozilla написано, что defer
устарело и больше не должно использоваться. Но на той же странице есть пример.
Мой вопрос: зачем использовать defer
с обещанием? В чем преимущество кода ниже, только писать меньше кода? Вместо этого я должен определить новое обещание?
export function defer () {
const deferred = {}
deferred.promise = new Promise((resolve, reject) => {
deferred.resolve = resolve
deferred.reject = reject
})
return deferred
}
И код, который его использует:
export async function waitForPredicate (peer, path, predicate, cancelToken) {
const deferredFetcher = defer()
...
let result = predicate(data)
if (result) {
deferredFetcher.resolve(result)
}
})