Как ждать решения нового обещания? - PullRequest
0 голосов
/ 25 апреля 2018

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

, но на самом деле broadcastPromise не ожидает его разрешения.

укажите решение

код :

const promiseFunctions = {};
const broadcastPromise = new Promise((resolve, reject) => {
  promiseFunctions.resolve = resolve;
  promiseFunctions.reject = reject;
});

broadcast() {
      promiseFunctions.resolve(broadcastValues);
}

return myMethod({
//fire the broadcast
..
})
.then(() => broadcastPromise) //this line must wait till the broadcast is fired and the value from it is resolved
.then(() => 
//do some processing on broadcastPromise
return value;)

1 Ответ

0 голосов
/ 25 апреля 2018

Не видя рассматриваемого кода (myMethod()), вы делаете это более сложным, чем нужно.

Напишите вашу broadcast() функцию как функцию, возвращающую обещание, либо как async broadcast(){}, либо убедитесь, что она возвращает обещание.

Затем из вашей цепочки обещаний myMethod возвращает обещание. Чтобы «дождаться разрешения нового обещания», либо:

a) Используйте async function myMethod(){} и просто ждите broadcast() вызова. или же б) Цепочка трансляции внутри возвращенного Обещания myMethod()

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