2017-09-17 3 views
0

나는 사용자 응답을 처리하고 다음 질문을 원합니다. 나는 ... else를 사용했지만 나쁜 습관인데 어떻게 yield를 사용할 수 있습니까?수확량에 따른 텔레 그램 봇 조사

function* gen() { 
let ask1 = yield bot.sendMessage(id, "What is Your fname?"); 
    bot.on("message", msg => { 
     fname = msg.text; 
    }); 

    let ask2 = yield bot.sendMessage(id, "What is Your second name?"); 
     bot.on("message", msg => { 
     sname = msg.text;}); 
    } 

그러나 일관되게 그들을 호출하는 방법을 이해할 수 없습니까?

답변

0

모든 질문에 ForceReply을 사용하고 update.message.reply_to_message.text을 (를) 찾을 수 있습니다.

0

Thnx @Sean, 가능하면 yeild를 사용하고 싶습니다. 나는 내가 그것을

fname - Serg 
undefined 
fname - Serg 
undefined 
sname - Pavlov 
SergPavlov 
true 
sname - Pavlov 
SergPavlov 
true 

하고 나 한테 물어 얻을 대답

function* gen() { 
    let ask1 = yield two() 

    console.log(ask1); 

    let ask2 = yield three() 

    console.log(ask2); 
} 

let generator = gen(); 

function two() { 
bot.sendMessage(id, "What is Your fname"); 
    bot.on("message", msg => { 
     fname = msg.text; 
    console.log("fname - "+fname); 
    generator.next(three()); 
    return fname; 
    }); 
} 

function three() { 
bot.sendMessage(id, "What is Your second name?"); 
    bot.on("message", msg => { 
     sname = msg.text; 
    console.log("sname - "+sname); 
    generator.next(success()); 
    return sname; 
    }); 
} 

function success() 
{console.log(fname+sname); 
console.log(generator.next().done);} 


console.log(generator.next().value); 

아주 이상한 일이야,이 코드를 시도했지만 "당신의 두 번째 이름은 무엇입니까?" 반복해서.

관련 문제