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; //就行了
})