Я новичок в Угловом и Узлом, а также недавно играл с AWS. Мне нравится концепция серверных вычислений, поэтому я пытаюсь написать приложение AngularJS, которое будет вызывать микросервисы Node.JS, размещенные на AWS Lambda.Получение данных от Угловой фабрики, вызывающей AWS Лямбда в контроллер
У меня есть, что касается моей функции лямбда через Угловую фабрику и получения успешного ответа. Я могу получить полезную нагрузку Lambda, которую я определил в своей функции Lambda, на консоль изнутри Угловой фабрики после вызова метода lambda.invoke(), но я не могу получить данные в моем контроллере, чтобы фактически использовать его. Я просто получаю сообщение об ошибке «undefined».
Я читал об этом часами, на этом сайте и другими, и моя неопытность с Угловым делает это очень трудным для себя, поэтому любая помощь приветствуется. Я чувствую, что ответ должен быть некоторые вариации этого (angular controller is executing before factory complete) ....... но я просто не могу заставить его работать
Завод находится ниже:
my.factory("AWSbits", function() {
var params = {
FunctionName: 'arn:aws:lambda:eu-west-1:xyz',
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: JSON.stringify ({
".....some stuff"
}),
};
var lambda = new AWS.Lambda();
return{
lambdaexecute : function(){
lambda.invoke(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data); // successful response
if (data.Payload != '{}') {
jdata = JSON.parse(data.Payload);
return jdata;
}
}
})}};
);
Контроллер:
my.controller('AWSController', [
'$scope',
'AWSbits',
function($scope, AWSbits){
$scope.output = AWSbits.lambdaexecute();
console.log($scope.output); ====> undefined
}
]);
Спасибо - просто понял, что это получил ответ - я использовал $ scope.apply(), чтобы исправить мою проблему. Я расскажу вам о том, что вы предложили, когда я получу шанс увидеть, как это работает. – user1439488