|
nodejs прочитать из консоли внутри promice? |
☑ |
0
Fragster
гуру
06.02.17
✎
21:40
|
линейный код выглядит так:
соединились с сервером
отправили запрос
/// тут на телефон приходит код
прочитали код из командной строки
отправили еще один запрос
завернул первую часть в промис, получилось типа
regPhone = require('./regPhone');
regPhone.sendCode(phoneNumber, server).then(
(result) => {
console.log(result);
// а вот тут надо прочитать с stdin код
regPhone.getKey();
});
проблема в том, что все мануалы на чтение stdin выглядят примерно так:
process.stdin.setEncoding('utf8');
process.stdin.on('readable', () => {
var data = process.stdin.read();
if (data === null) { return; };
data = data.trim();
....
});
как это впихнуть внутрь обработчика промиса - непонятно. наверное надо превратить в еще один промис, только как?
|
|
1
Asmody
06.02.17
✎
22:28
|
|
|
2
Asmody
06.02.17
✎
22:29
|
?
|
|
3
Fragster
гуру
06.02.17
✎
22:38
|
нет, но у ноды есть замечательный readline
|
|
4
Fragster
гуру
06.02.17
✎
22:40
|
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('What do you think of Node.js? ', (answer) => {
// TODO: Log the answer in a database
console.log(Thank you for your valuable feedback: ${answer} );
rl.close();
});
и чентральная часть замечательно запихивается в промис
|
|
5
Asmody
06.02.17
✎
22:46
|
const stdinRead = ()=>{
new Promise((resolve, reject)=>{
process.stdin.setEncoding('utf-8')
process.stdin.on('readable', () => {
let data = process.stdin.read()
if (data === null) reject(new Error(...))
resolve(data.trim())
}
}
}
и потом где надо
stdinRead().then((data)=>{...}).catch((err)=>{...})
|
|
6
Asmody
06.02.17
✎
22:52
|
return пропустил перед new
|
|
7
eks1985
06.02.17
✎
22:52
|
new Promise((resolve, reject)=>{ тут return забыл
|
|
8
eks1985
06.02.17
✎
22:53
|
(6) =)
|
|
9
Asmody
06.02.17
✎
22:54
|
на планшете неудобно код писать
|
|
10
Fragster
гуру
06.02.17
✎
23:24
|
есть реализация telegram api на ноде.жс, более полная, чем telegram.link?
|
|
11
Fragster
гуру
06.02.17
✎
23:24
|
не боты, а полноценные клиенты
|
|
12
Fragster
гуру
09.02.17
✎
23:32
|
не пойму, в чем косяк:
вот так в callback попадает параметр
function getKey(code) {
return new Promise(function(callback, reject) {
client.auth.signIn(code, callback);
});
};
а вот так нет:
function getKey(code) {
return new Promise(function(callback, reject) {
client.auth.signIn(code, (result)=>{callback(result)});
});
};
не пойму, что делаю не так. Вызов происходит так:
getCode(code).then((res)=>{
console.log(res);
})
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший