function a(){
const promise1 = new Promise((resolve, reject) => {
resolve('Success!');
});
var output ;
promise1.then((value) => {
output = value;
});
return output;
}
console.log(a()) //underfind
我想得到then里面的value值 但是打不到 我那里错了呢?
Promise是异步的,看看这个: https://wenyuanblog.com/blogs/javascript-how-to-return-value-in-promise.html https://wenyuanblog.com/blogs/javascript-how-to-return-value-in-promise.html
因为promise是异步的,a()
执行完,赋值语句才执行的
你在赋值的时候打印个东西就知道了
额,Promise是异步的,then是在
执行之后执行的,你定义了output之后,在then里边赋值,执行到then的时候会去等Promise内的方法执行完毕,代码继续执行,在Promise尚未执行完成便返回了,说的有点乱,不知道你能不能看的懂,,,┗( ▔, ▔ )┛
没有办法得到then里面的值嘛 我怎么改一下代码才可以呢
function a(){
const promise1 = new Promise((resolve, reject) => {
resolve('Success!');
});
var output ;
promise1.then((value) => {
output = value;
resolve(output);
});
return promise1;
}
a().then((value)=>{
console.log(value)
})
你可以这样子,等整个a函数执行完再打印值
哦 ,看来得值是不行了 bug
我真的很想得到值 有其它办法嘛 ?
const data = async function(){
return await a()
}
console.log(data)