gpt4 book ai didi

javascript - 如何使用 Promise 中的值异步更新 AngularJS 状态

转载 作者:行者123 更新时间:2023-12-03 21:02:28 25 4
gpt4 key购买 nike

如何在 JavaScript 中访问 then() 的返回值?

我有以下功能:

function getResult(){
var promise = _myService.getAge();
var getResultPromise = promise.then(function(age){
return age;
})
return getResultPromise; //How do i get the age (value) here? *see image*
}

或者我将如何访问下面 $$state 对象中的值?

enter image description here

最佳答案

这个怎么样:

//The simple solution, this is how to use a Promise:

let _myService = {
getAge: function() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(3)
}, 500);
})
}
};

function getResult() {
_myService.getAge().then(function(age) {
console.log(age);
});
}

getResult();

//OR, maybe closer to OP's intended implementation, put the value in an outer state:

let outerState = {
age: 0
};

setTimeout(function() {
console.log(outerState)
}, 450);

let _myService2 = {
getAge: function() {
return new Promise(function(resolve, reject) {
setTimeout(function() {
resolve(8)
}, 750);
})
}
};

function addAgeToOuterState() {
pState = new Promise(function(resolve, reject) {
_myService2.getAge().then(function(newAge) {
outerState.age = newAge;
resolve(outerState);
});
});

pState.then(function() {
console.log(outerState);
});

return pState;
}

addAgeToOuterState()

//for fun
.then(function(outer) {
console.log(outer); //state is still here
});

关于javascript - 如何使用 Promise 中的值异步更新 AngularJS 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43259349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com