Подтвердить что ты не робот

Вернитесь от обещания, затем()

У меня есть код javascript, например:

function justTesting() {
  promise.then(function(output) {
    return output + 1;
  });
}

var test = justTesting();

У меня всегда есть значение undefined для теста var. Я думаю, что это потому, что promises не разрешен jet.there есть способ вернуть значение из promises?

Спасибо!

4b9b3361

Ответ 1

Чтобы использовать обещание, вам нужно либо вызвать функцию, которая создает обещание, либо создать ее самостоятельно. Вы действительно не описываете, какую проблему вы действительно пытаетесь решить, но вот как вы сами создаете обещание:

function justTesting(input) {
    return new Promise(function(resolve, reject) {
        // some async operation here
        setTimeout(function() {
            // resolve the promise with some value
            resolve(input + 10);
        }, 500);
    });
}

justTesting(29).then(function(val) {
   // you access the value from the promise here
   log(val);
});

// display output in snippet
function log(x) {
    document.write(x);
}

Ответ 2

Когда вы возвращаете что-то из обратного вызова then(), это немного магия. Если вы вернете значение, вызывается следующее() с этим значением. Однако, если вы возвращаете что-то обещающее, следующее() ждет его и вызывается только тогда, когда это обещание оседает (преуспевает/не удается).

через https://developers.google.com/web/fundamentals/getting-started/primers/promises#queuing_asynchronous_actions

Ответ 3

То, что я сделал здесь, это то, что я вернул обещание функции justTesting. Затем вы можете получить результат, когда функция будет решена.

function justTesting() {
  return promise.then(function(output) {
    return output + 1;
  });
}

justTesting().then((res) => {
     var test = res;
    // do something with the output :)
    }

Надеюсь, это поможет!