node js нормальный сценарий обратного вызова для блокировки кода - PullRequest
0 голосов
/ 20 февраля 2020

Я получаю обратные вызовы (не хочу прямо сейчас использовать обещание и асин c -await) и написал код в node.js для суммирования a, b и c, где я создал три функции для получения значений a, b и c.

// getting value of a
const getA = () => 10

// getting for value b
const getB = () => 20

// This function has to wait for 2 seconds to 
const getC = (callback) => {
    setTimeout(() => {
        callback(30)
    }, 2000);
}

const sum = (a, b, c, callback) => {
    callback(a + b + c)
}

sum(getA(), getB(), getC((c) => c), (sum) => console.log(sum))

Я хочу вывод 60 после ожидания выполнения get C () до окончания sh, но не получил

1 Ответ

0 голосов
/ 20 февраля 2020

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

Но на ваш вопрос я бы дал решение.

// getting value of a
const getA = () => 10;

// getting for value b
const getB = () => 20;

// This function has to wait for 2 seconds to
const getC = (callback) => {
  setTimeout(() => {
    callback(30);
  }, 2000);
};

getC((val) => console.log(getA() + getB() + val));

Итак вы ждете, пока get C не закончится, и используете обратный вызов для получения результата c.

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