私はNodeJSに新しい非常にです。ユーザーに特定の順序で入力を促すプロンプトを表示しようとしています。これは非常にずさんなコードがあるが、たとえそうであっても、私はそれがtest.displayPlayersは()前test.getType()を実行するように動作するはずだと思いますが、それ私が知っているNode.js:複数のノードが正しい順序で実行されていない
var prompt = require('prompt');
var promising = require("promise-adapter");
var promptGet = promising(prompt.get);
prompt.start();
function Game() {
playerOneName = '';
playerTwoName = '';
pOneType = true;
}
//prompts the user for two names and assigns them
//to player one and player to for the game object
Game.prototype.getName = function (resolve){
promptGet(['playerName1', 'playerName2']).then(function(result){
this.playerOneName = result.playerName1;
this.playerTwoName = result.playerName2;
})
.then(function() {
resolve();
});
}
Game.prototype.getType = function (resolve) {
//console.log('made it to the function');
promptGet(['Player1Type']).then(function(result){
if (result.Player1Type !== "X"){ this.pOneType = false;}
//console.log(this.pOneType);
})
.then(function(){
resolve();
});
}
Game.prototype.displayPlayers = function(resolve) {
if (pOneType === true){
console.log(this.playerOneName + " will be X's");
console.log(this.playerTwoName + " will be O's");
}
else {
console.log(this.playerOneName + " will be O's");
console.log(this.playerTwoName + " will be X's");
}
console.log("Let's Get Started!");
}
var test = new Game();
new Promise(function(resolve, reject){
test.getName(resolve);
})
.then(function(resolve, reject){
test.getType();
})
.then(function(resolve, reject){
test.displayPlayers();
});
:ここに私のコードですそうではない。助けてくれてありがとう!私はコードをクリーンアップする方法についてアドバイスを受けています。
しかし、これを行うと、displayType()が実行される前にdisplayPlayers()が実行され、結果が未定義になります。 – cbrauns