Как мне написать асинхронный / ожидающий код, не цепляя и не вкладывая кучу обещаний? - PullRequest
0 голосов
/ 16 октября 2018

Я немного борюсь с этим.

Скажем, например, мне нужно значение, прежде чем я смогу выполнять другую работу.

Чтобы получить значение, мне нужносделать вызов API.

В моем обычном мозгу программирования я хочу сделать следующее:

let x = api.getLocationOfUser('user154');

За этим следует другой код, такой как:

let y = geo.getTaxRulesByLocationId(x.location_id);

Является лиЕдинственный способ добиться этого с помощью вложенности?

1 Ответ

0 голосов
/ 16 октября 2018

Может быть, вы столкнулись с проблемой, которая называется CallbackHell .

function myfunc() {
    otherFunctionThatReturnsPromise.then((a) => {
        otherFunction(a).then((b) => {
            // Do stuff
            console.log(b);
        });
    });
}

Попробуйте следующий код:

async function myfunc() {

   let a = await otherFunctionThatReturnsPromise();

   // This line wont be executed until the upper line returns with a resolved Promise
   let b = await otherFunction(a);
}

Для справки посмотрите сайт MDN

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