Загрузите UINavigationController как подпредставление от UIViewController

Это проблема синхронизации.

Ваш код return response выполняется перед вызовом.

вам придется поместить свой оператор return в ваш обратный вызов или использовать async / await

Возврат внутри вашего обратного вызова:

var AWS = require("aws-sdk");

exports.handler = async (event) => {
  const response = {
    statusCode: 200,
    body: JSON.stringify('Hello from Lambda!'),
  };

  var s3 = new AWS.S3();
  s3.listBuckets({}, function (err, data) {
    if (err) {
      console.log(err, err.stack);
      return {
        statusCode: 500,
        message: 'some error'
      }
    }
    return response
  });
}

Использование async / await :

var AWS = require("aws-sdk");

exports.handler = async (event) => {
  const response = {
    statusCode: 200
  };

  var s3 = new AWS.S3();
  await s3.listBuckets().promise();
  return response;
}

Я бы выбрал подход async / await, так как он намного чище и более читабелен. Также легче работать с обещаниями, чем с обратными вызовами.

РЕДАКТИРОВАТЬ : ОП утверждал, что это не сработало. Поэтому я решил проверить это самостоятельно. Вышеприведенный код работает с очень небольшим изменением только для добавления перечисленных сегментов к ответу. Вот окончательный код:

var AWS = require("aws-sdk");

exports.handler = async (event) => {
  const response = {
    statusCode: 200
  };

  var s3 = new AWS.S3();
  const buckets = await s3.listBuckets().promise();
  response.body = JSON.stringify(buckets);
  return response;
}

А вот вывод в журналах CloudWatch:

enter image description here

7
задан BoltClock 27 November 2010 в 04:34
поделиться

1 ответ

NavigationController предназначен для захвата экрана при его использовании, поэтому вам нужно решить, как управлять переходом к NavigationController из вашего исходного ViewController. Вы можете сделать это с presentModalViewController, или обработав удаление исходного представления и программный обмен NavigationController.

Вот документация Apple для программной настройки NavigationController.

Код будет выглядеть что-то вроде этого (из документа Apple):

GroupsController *groupsController = [[[GroupsController alloc] initWithNibName:nil bundle:nil] autorelease];
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController:groupsController];

Теперь, когда вы создали NavigationController и добавили в него свой первый view-контроллер, вам нужно перейти к нему. Вы можете сделать это с помощью CATransitions или с помощью

[myViewController presentModalViewController: navigationController];
8
ответ дан 6 December 2019 в 19:41
поделиться