如何从Node.js中的promise和async / await函数返回值

时间:2019-11-06 15:16:44

标签: javascript node.js promise async-await

我是Node.js的新手,并承诺。我已经在C#中使用async / await完成了一些工作,但是我在努力获得返回值。我遵循了一个关于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 个答案:

答案 0 :(得分:1)

形式承诺:

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

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