Есть несколько способов сделать это.
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
Вы также можете пойти по старому пути, используя затем:
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));
Используйте одну из превосходных библиотек Actors, появившихся недавно. Алекс Миллер написал хорошую часть из двух частей для Javaworld on Actors .
Лично мне очень нравится Актерская гильдия .
Возможно, вы захотите взглянуть на акторов Scala (вы можете увидеть их как своего рода библиотеку Java), см., Например: Путеводитель по Scala для Java-разработчиков: Погрузитесь глубже в параллелизм Scala .