去想在a函数里得到then的值


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是在
img
执行之后执行的,你定义了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)