承诺没有解决价值?

时间:2016-01-09 21:01:48

标签: javascript promise ecmascript-6

我在下面的代码中找不到我的错误。 我想要的只是save()返回true或false但它总是undefined

function mypromise() {
  return new Promise((resolve, reject) => {
    resolve("it worked")
  })
}

function save() {
  mypromise().then(success => {
    return true
  }, error => {
    return false
  });
}

var saveSuccessful = save();
console.log('success', saveSuccessful) // undefined ?

1 个答案:

答案 0 :(得分:0)

只有在承诺执行完毕后,您才能知道保存是否成功,如下所示:

function mypromise() {
  return new Promise((resolve, reject) => {
    resolve("it worked")
  })
}

function save() {
  mypromise().then(success => {
    console.log('success');
    return true;
  }, error => {
    return false
  });
}

save();

如果您可以写var saveSuccessful = save();表示save() 同步,则根据同步定义,但您明确希望它是异步