gpt4 book ai didi

javascript - 无法将值从工厂返回到服务 AngularJS

转载 作者:行者123 更新时间:2023-12-03 06:06:17 26 4
gpt4 key购买 nike

我的工厂代码

.factory('appData', ['connectionManager', function($connectionManager) {
return {
getAppDataItem: function(apiName, params) {
console.log('Getting value...');
$connectionManager.sendRequest({
'apiName': apiName,
'params':{
'@key': "'" + params['@key'] + "'"
}
}).then(function(res){
console.log('Retrieved data ', res.data);
return res.data;
});
}
}
}]);

我的服务代码

            var x = appData.getAppDataItem('getItemFromAppData', {
'@key': 'last_emp_id'
});
console.log(x);

我想将工厂中 .then() 返回的值分配给我服务中的 var x 。但我做不到。请帮我。我得到的值高达 .then()。之后我无法将其传递给服务。

最佳答案

getAppDataItem 函数需要返回一个 promise :

.factory('appData', ['connectionManager', function($connectionManager) {
return {
getAppDataItem: function(apiName, params) {
console.log('Getting value...');
//$connectionManager.sendRequest({
//return promise
return $connectionManager.sendRequest({
'apiName': apiName,
'params':{
'@key': "'" + params['@key'] + "'"
}
}).then(function(res){
console.log('Retrieved data ', res.data);
return res.data;
});
}
}
}]);

客户端代码应使用 Promise 的 .then 方法来访问数据。

var promise = appData.getAppDataItem('getItemFromAppData', {
'@key': 'last_emp_id'
});
promise.then( function (x) {
console.log(x);
});

关于javascript - 无法将值从工厂返回到服务 AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39531022/

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