JavaScript承诺未返回正确值

时间:2018-09-23 12:27:32

标签: javascript

嘿,我一直在学习promise,无法理解为什么在下面的代码中未定义a的值。

a = new Promise(function(resolve, reject) {
  setTimeout(function(){
    resolve(5);
  }, 1000);
});

console.log(a);

任何解释将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:3)

此处console.log将立即执行,并显示分配了一个Promise对象的a的值。因此它将a作为对象记录。Promiseresolved后,您想记录该值。尝试登录then

a = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve(5);
  }, 1000);
});

a.then((data) => {
  console.log(data)
})