如何使用Promise中的值异步更新AngularJS状态 [英] How to asynchronously update AngularJS state using value inside of Promise
本文介绍了如何使用Promise中的值异步更新AngularJS状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在JavaScript中从then()访问返回值?
How can i access a returned value from then() in JavaScript?
我有以下功能:
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*
}
或者我将如何访问$$状态中的值下面的对象?
Or how would i access the value in the $$state object below?
推荐答案
这个怎么样:
//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
});
这篇关于如何使用Promise中的值异步更新AngularJS状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文