Nano Hash - криптовалюты, майнинг, программирование

как сделать wakanda асинхронным ssjs

Я использую httpRequestHandlers для всего взаимодействия между веб-клиентом и сервером Wakanda. Я не использую коннектор Wakanda от сервера к клиенту.

Как предоставить асинхронные ответы (обещания) веб-интерфейсу, когда вызовы ssjs на другие серверы ожидают ответа?

24.04.2016

Ответы:


1

Обещания относятся исключительно к клиентской стороне. Вам не нужно ничего делать с Wakanda Server, кроме как вернуть результат (как вы уже делали) с помощью httpRequestHandler. Как вы обрабатываете запрос на стороне клиента, зависит от вас.

Тот факт, что ваш код на стороне сервера отправляет запрос третьей стороне, не влияет на то, как вы подошли бы к асинхронной природе браузера (будь то промисы или обратные вызовы). Ваш код Wakanda Server будет синхронным и будет ждать ответа. В свою очередь, когда запрос на стороне сервера будет завершен, включая запрос третьей стороне, он ответит вашему браузеру.

Поскольку Wakanda Server является многопоточным, синхронный код для запроса не будет блокировать выполнение других запросов.

Надеюсь, это поможет.

24.04.2016

2

Вызовы на стороне клиента выполняются асинхронно, как описано здесь: docs Для поддержки промисов вам придется использовать библиотеку, например Bluebird, и промисифицировать нативные вызовы с обратными вызовами, чтобы получить функции, возвращающие промисы.

Вызов асинхронных методов на стороне сервера в обработчике HTTP-запросов также достаточно прост. Просто не используйте return в основной функции, а установите response.body (и/или response.statusCode, заголовки...) в обратном вызове. Это может выглядеть так:

function myHandler(request, response){
   callAsync(myParam, {onSuccess: function(event){
      response.body = event.result;
   });
}
25.04.2016

3

Я согласен с предыдущими ответами о том, что использование промисов в передней части вашего приложения не требует от бэкэнда каких-либо специальных возможностей.

Если вы используете REST API Wakanda, вы можете использовать клиент Wakanda JavaScript, который уже предоставляет Promise API.

Вы можете посетить вики-страницу быстрого старта, чтобы узнать больше.

28.04.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..