我应该使用承诺从Std In阅读吗?

时间:2017-06-29 06:38:50

标签: javascript promise

我正准备接受招聘平台TripleByte的采访,我将被要求实施终端游戏。我最熟悉javaScript,但学习回调并且对promises的经验很少。

我在这里阅读了关于何时何时不使用承诺的一般性描述,但我很好奇我是否应该在

中使用它们

以下情景:

function promiseStart(reader){
    askQuestion(reader, "Give me the super secret password\n")
    .then((password) => {
        if (password === "password"){
            return askQuestion(reader, "Now give me the secure token\n");
        } else {
            throw "incorrect password"
        }
    })
    .then((token) => {
        if (token === "password"){
            console.log("SUCCESS");
            reader.close()
        } else {
            throw "incorrect token"
        }
    }).catch((error) => {
        console.log(error);
        promiseStart(reader);
    })
}

function askQuestion(reader, question){
    return new es6Promise.Promise((resolve, reject) => {
        reader.question(question, (answer) => {
            resolve(answer);
        })
    })
}

promiseStart(reader);

我真的应该从终端强制承诺IO吗?对于这个以及一般的游戏来说,使用回调似乎更直观,例如,我无法访问之前承诺的变量,否则我将在回调中关闭。

奖励:你认为有必要使用promises来表明我是最新的,或者如果我能用回调更舒服地写,我会不会因为这样做而失去分数?我对这次采访感到非常紧张,所以感谢任何帮助!

0 个答案:

没有答案