2017-06-25 7 views
0

私は、コンソールからの入力を読み取って結果を次のオブジェクトに渡すといういくつかの約束をチェーンにしようとしています。問題は、私が第二の約束事で定義されておらず、約束していないことです。コンソール入力を読み取る約束を束ねる

const readline = require('readline'); 

const rl = readline.createInterface({ 
    input: process.stdin, 
    output: process.stdout 
}); 

const getUrl = (objectInfo) =>{ 
    return new Promise((resolve) => { 
     rl.question('Introduce post URL ', (answerUrl) => { 
      console.log(answerUrl); 
      rl.close(); 
      objectInfo.url = answerUrl; 
      resolve(objectInfo); 
     }); 
    }); 
}; 

const getFieldsToFill = (objectInfo) => { 
    new Promise((resolve) => { 
     rl.question('Introuce fields with spaces', (answerFields) => { 
      console.log(answerFields); 
      rl.close(); 
      objectInfo.answerFields = answerFields; 
      resolve(objectInfo); 
     }); 
    }); 
}; 

const getFieldsType = (objectInfo) => { 
    new Promise((resolve) => { 
     rl.question('Introduce types ', (answerTypes) => { 
      console.log(answerFields); 
      rl.close(); 
      objectInfo.types = answerTypes 
      resolve(objectInfo); 
     }); 
    }); 
} 

getUrl({}) 
    .then(getFieldsToFill) 
    .then(getFieldsType) 
    .then((information) => { 
     console.log(information) 
    }); 
+0

である必要があります:) –

答えて

1

あなたのコード内の二つの問題がありました:getFieldsToFillgetFieldsType

  • returnの文が欠落してい

    1. あなたがここにもっと答え

    を読む前にreadlineを閉じたコードですそれらの修正:

    const readline = require('readline'); 
    
    const rl = readline.createInterface({ 
        input: process.stdin, 
        output: process.stdout 
    }); 
    
    const getUrl = (objectInfo) =>{ 
        return new Promise((resolve) => { 
         rl.question('Introduce post URL ', (answerUrl) => { 
          console.log(answerUrl); 
          objectInfo.url = answerUrl; 
          resolve(objectInfo); 
         }); 
        }); 
    }; 
    
    const getFieldsToFill = (objectInfo) => { 
        return new Promise((resolve) => { 
         rl.question('Introuce fields with spaces', (answerFields) => { 
          console.log(answerFields); 
          objectInfo.answerFields = answerFields; 
          resolve(objectInfo); 
         }); 
        }); 
    }; 
    
    const getFieldsType = (objectInfo) => { 
        return new Promise((resolve) => { 
         console.log(objectInfo); 
         rl.question('Introduce types ', (answerTypes) => { 
          rl.close(); 
          objectInfo.types = answerTypes 
          resolve(objectInfo); 
         }); 
        }); 
    }; 
    
    getUrl({}) 
        .then(getFieldsToFill) 
        .then(getFieldsType) 
        .then((information) => { 
         console.log(information) 
        }); 
    
  • 0

    あなたの機能は実際に約束を返すわけではありません。彼らは形式

    const someFunction = (objectInfo) => { 
        new Promise(//... 
    

    のだ。しかし `return`動作を停止を入力するとき、私はそれを嫌う形式

    const someFunction = (objectInfo) => 
        new Promise(//... 
    

    または

    const someFunction = (objectInfo) => { 
        return new Promise(//...