promise成功后的返回值[[PromiseResult]]中的值如何赋值给变量?

const f1 = () => {
    return new Promise((resolve, reject) => {
        resolve(1);
    });
};

let a = f1()
        .then((result) => {
          return result + 1;
        })
        .catch((err) => {});
console.log(a);


Promise {<pending>}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: 2


想将then里面return的值赋值给一个变量

如果你用同步的话

async function app(){
    const f1 = ()=>new Promise(r=>r(1))
    let a = await f1()
    console.log(a)
}
app()

如果你要异步的话

function app(){
    const f1 = ()=>new Promise(r=>r(1))
    f1().then(a=>{
        // 变量a的作用域只能在回调内。在外部声明时,因为线程的争夺当前变量的值是不可靠的
        console.log(a)
    })
}

如果不在用一个函数体内,请参考监听事件EVENT,当监听到old_data不等于new_data时,实现你的回调逻辑

思维感觉不对,这种异步操作按理说是不应该用在全局变量里的,如果某个操作一定要这个数据,那就把那个操作放在异步的回调方法中,不这样的话你怎么知道当前的全局变量已经被赋值了呢

用async和await 或 直接 .then 可以

f1.then(res=>{
   let b=res;  //就行了
})