Создать асинхронное действие в Swift

Я пытался следовать некоторым примерам, чтобы создать действия для openwhisk. К сожалению, большинство примеров написано на JS, поэтому пришлось переписать их на Swift. Это работало довольно хорошо, пока я не захотел написать асинхронные действия.

Первая проблема, с которой я столкнулся, это НОД. Реализация Openwhisks Swift работает на Linux, поэтому для использования GCD необходимо импортировать библиотеку libdispatch. Конечно, я не могу изменять модули, которые openwhisk загружает во время выполнения Swift. В конце концов я наткнулся на песочницу IBM Bluemix, где узнал, что есть модуль Dispatch, который должен предоставлять доступ к функциям, подобным GCD. Однако, хотя я могу создавать очереди, время отправки, закрытие и т. д., я не мог понять, как это на самом деле отправить. dispatch_async, dispatch_after и т. д. — все это неизвестные символы.

Хотя я все еще не могу решить первую проблему, я борюсь с Whisk API. В JS есть команды whic.async() и whip.done(). В Свифте нет.

С уважением, Виктор


person Victor Van Doom    schedule 12.03.2016    source источник


Ответы (1)


Как вы указали, OpenWhisk запускает действия Swift в контейнерах Linux. Поддержка Linux для Foundation и libdispatch все еще частичная, вероятно, по крайней мере, еще несколько месяцев. OpenWhisk регулярно обновляет моментальную версию Swift 2.2, которая используется для запуска действий, но мы существенно зависим от общего прогресса Swift в Linux.

Мы еще не завершили дизайн Swift, эквивалентного JavaScript whisk API. Не обязательно, что конструкции будут однозначно отображаться в разных языках. Например, асинхронные действия, скорее всего, будут полагаться на конструкции libdispatch в Swift.

person Philippe    schedule 14.03.2016
comment
Хорошо, спасибо за информацию. Обновляется ли Swift Sandbox с той же скоростью, что и OpenWhisk, или они взаимоисключающие? - person Victor Van Doom; 15.03.2016
comment
OpenWhisk в настоящее время немного отстает, но мы изучаем возможность использования их контейнерных артефактов, которые могут привести нас прямо к ним. - person Philippe; 15.03.2016