У меня есть библиотека, которая подключается к удаленному API:Создание асинхронной функции синхронные для Node.js РЕПЛ
class Client(access_token) {
void put(key, value, callback);
void get(key, callback);
}
Я хочу создать Node.js REPL, чтобы сделать его легко попробовать вещи :
var repl = require('repl');
var r = repl.start('> ');
r.context.client = new Client(...);
Проблема в том, что асинхронный API не подходит для REPL. Я бы предпочел синхронный, который дает результат через возвращаемое значение и сигнализирует об ошибке с исключением. Что-то вроде:
class ReplClient(access_token) {
void put(key, value); // throws NetworkError
string get(key); // throws NetworkError
}
Есть ли способ реализации ReplClient
с использованием Client
? Я бы предпочел избегать любых зависимостей, отличных от стандартных пакетов Node.js.
Я не знаю Repl, но, пожалуйста, проверьте обещания, я обычно использую добротность модуль для выполнения обещаний. С обещаниями вы можете изменить свои функции и сделать их синхронными. Возможно, реплика уже дает обещания. – solick
Наряду с обещаниями вы можете использовать функции генератора для создания синхронного стиля кода с использованием ключевого слова 'yield', работающего с флагом' node --harmony' –
Вам действительно не нужно писать свою собственную обертку repl. Просто запустите узел без какого-либо скрипта, и он войдет в режим repl (без использования модуля repl) – slebetman