как сделать агентов (erlang) в Java?

Есть несколько способов сделать это.

Async / await

JavaScript ввел ключевые слова async и await несколько лет назад. Это специальный синтаксис, упрощающий асинхронное программирование. Вы можете сделать свои функции async и использовать await при их вызове. Это в основном оборачивает весь . then() беспорядок.

async function promiseTest(data) {
    const delay = 200;
    return new Promise(resolve => setTimeout(() => resolve(data), delay));
}


async function getInfo() {
    return await promiseTest(require('./allData.json'));
}

Затем вы можете получить результат getInfo(), ожидая его:

console.log(await getInfo());

Вот некоторые чтения, которые должны вам помочь:

https : //javascript.info/async-await https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/async_function

.then ()

Вы также можете пойти по старому пути, используя затем:

function promiseTest(data) {
    const delay = 200;
    return new Promise(resolve => setTimeout(() => resolve(data), delay));
}


function getInfo() {
    return promiseTest(require('./allData.json'));
}

getInfo().then(data => console.log(data));

Передать обратный вызов

Вы можете передать обратный вызов в свой метод getInfo. [1121 ]

function promiseTest(data) {
    const delay = 200;
    return new Promise(resolve => setTimeout(() => resolve(data), delay));
}


function getInfo(callback) {
    promiseTest(require('./allData.json')).then(data => callback(data));
}

getInfo(data => console.log(data));

5
задан Shahbaz 27 April 2009 в 08:25
поделиться

2 ответа

Используйте одну из превосходных библиотек Actors, появившихся недавно. Алекс Миллер написал хорошую часть из двух частей для Javaworld on Actors .

Лично мне очень нравится Актерская гильдия .

3
ответ дан 13 December 2019 в 22:16
поделиться

Возможно, вы захотите взглянуть на акторов Scala (вы можете увидеть их как своего рода библиотеку Java), см., Например: Путеводитель по Scala для Java-разработчиков: Погрузитесь глубже в параллелизм Scala .

2
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: