Это, вероятно, не "анти-шаблон" как таковой, но я бы раскрыл reject
и resolve
, если бы вам это было абсолютно необходимо. Что не так здесь. Вы можете просто сохранить обещание или данные в переменной:
let promise;
async function someFunctionMustHaveFetchedData(){
if (!promise) {
promise = fetch('...');
}
let data = await promise;
// do something after deferred resolved
}