如何解决函数返回 Promise{ <pending> } 在 JavaScript
如果我将函数返回的 Promise 值存储在一个变量中,然后打印它,那么它会显示 Promise { pending }。 为什么 ?因为直到3秒承诺肯定会解决。
let move = false;
function my() {
return new Promise(
(resolve,reject) => {
if (move === true)
return resolve("resolved")
else
return reject(new Error("Rejected"));
})
}
let obj = my().then((result) => {
console.log("result",result);
})
.catch((err)=>{
console.log("my error");
});
//it prints promise{ <pending> }
setTimeout(()=>{
console.log("time",obj)},3000
)
解决方法
promise 应该包装 setTimeout
函数并在 3 秒结束后解析。
let move = false;
function my() {
return new Promise((resolve,reject) => {
setTimeout(() => {
if (move) {
resolve('resolved');
} else {
reject(new Error('Rejected'));
}
},3000);
});
}
my()
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err.message);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。