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

标签 javascript angularjs

我的工厂代码

.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/

相关文章:

javascript - 在js中使用css类在一定次数的点击后重定向

javascript - 解析 JSON 对象 - Angularjs + PHP

javascript - Angular - 选择的默认选项未显示在下拉列表中

javascript - 当用户提交每个新帖子时,如何为每个新帖子添加时间戳(并在 Firebase 中保存)?

javascript - Bootstrap 形式的光谱颜色选择器插件

javascript - jqGrid setRowData 失败

css - ionic 菜单抽屉 - 如何禁用特定 Controller /状态

javascript - 失去指令的约束力

javascript - 删除了辅助电缆上的 PWA javascript 事件

javascript - 在 JavaScript 文本框中的正确位置插入文本