Передача / формирование цепочки обещаний JavaScript с использованием async / await - PullRequest
0 голосов
/ 14 января 2019

Возможно ли в Javascript ожидать обещание, которое уже было отправлено, но, возможно, еще не решено?

async function doStuff(nth) {
  setTimeout(() => console.log(nth), 2000);
}


async function waitForMe(prom, callback, nth) {
  await prom;
  await callback(nth);
}


const v = doStuff(1);
waitForMe(v, doStuff, 2);

Код выше выполняется параллельно; для моей проблемы пользователь может вызвать doStuff во время выполнения снова, прежде чем он завершится, и должен выполняться последовательно.

1 Ответ

0 голосов
/ 14 января 2019

Разве ты не можешь так поступить?

function doStuff(nth) {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      console.log(nth);
      resolve("done");
    }, 2000);
  });
}

async function waitForMe(prom, callback, nth) {
  await prom;
  await callback(nth);
}

const v = doStuff(1);
waitForMe(v, doStuff, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...