Javascript 承诺不是一种价值吗?
我在下面的代码中找不到我的错误。 我只想save()返回true或false,但它总是Javascript 承诺不是一种价值吗?,javascript,promise,ecmascript-6,Javascript,Promise,Ecmascript 6,我在下面的代码中找不到我的错误。 我只想save()返回true或false,但它总是未定义 function mypromise() { return new Promise((resolve, reject) => { resolve("it worked") }) } function save() { mypromise().then(success => { return true }, error => { return f
未定义
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 ?
只有在承诺完成执行后,您才能知道保存是否成功,如下所示:
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()
是同步的,根据同步的定义,但您明确希望它是异步的。回调中的代码是异步执行的。您的函数save()
不会返回任何东西-您期望什么?@BenjaminGruenbaum当我执行save mypromise()时。然后()
我得到了尚未兑现的承诺。有没有直接返回值的方法?save
函数的可能重复项不会返回任何值。请确保,不要错过从这里返回的承诺。然后您应该使用。然后
检查保存是否成功,并查看更多详细信息。