Как вернуть значения из обещания и асинхронной / ожидающей функции в Node.js - PullRequest
0 голосов
/ 06 ноября 2019

Я новичок в Node.js и обещания. Я сделал некоторую работу с async / await в C #, но я борюсь с получением возвращаемого значения. Я последовал примеру на stackoverflow и скопировал его ниже. Я немного изменил его, чтобы представить, что я пытаюсь сделать, и это не работает. Я надеюсь, что кто-то может сказать мне, что мне не хватает. Я создал два образца: один с обещанием, а другой с помощью асинхронного. Спасибо за вашу помощь!

let bar;
function foo() {
    return new Promise((resolve, reject) => { 
        setTimeout(function () {        
            resolve('wohoo')
        }, 1000)
    })
}

async function foo2() {
    setTimeout(function () {
        return ('wohoo')
    }, 1000);
}

function test3() {
    foo().then(res => {
        bar = res;
        console.log(bar) 
    });
}

async function test4() {
    let bar2 = await foo2();
    console.log('bar2=', bar2);
}

test3();
test4();
console.log('bar=', bar);
console.log('The end.');


The Output:
-----------
bar= undefined
The end.
bar2= undefined
wohoo


1 Ответ

1 голос
/ 06 ноября 2019

Форма обещания:

var promise1 = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve('foo');
  }, 300);
});

promise1.then(function(value) {
  console.log(value);
  // expected output: "foo"
});
...