0

JavaScript ゲームを作成しようとしていて、WebSQL を使用してゲーム データを保存しています。クエリ結果をフォーマットして返す独自のデータベース選択関数を作成しました。

この特定のインスタンスでは、返されたオブジェクトを results 関数に渡します。他の 2 つの変数も渡したいのですが、「Uncaught ReferenceError: PlanetInfo is not defined」というエラーが表示され続けます。誰かが助けることができれば、それは非常にありがたいです. よろしくお願いします。

「selectRowPlanets('query',outcomes(shipInfo,arrivalNumber));」も使用してみましたが、まだうまくいきません。

/** db.js **/ 
function selectRowPlanets(query, callBack){ // <-- extra param
  var result = [];
  db.transaction(function (tx) {
    tx.executeSql(query, [], function(tx, rs){
      for(var i=0; i<rs.rows.length; i++) {
        var row = rs.rows.item(i);
          result[i] = { id:          row['id'],
                        name:        row['name'],
                        owner:       row['owner'],
                        colum:       row['colum'],
                        row:         row['row'],
                        ships:       row['ships'],
                        production:  row['production'],
                        percent:     row['percent']
        }
      }
      callBack(result); // <-- new bit here
    }, errorHandler);
  });
}


/** function.js **/
function selectDestination(shipInfo, arrivalNumber) {
    selectRowPlanets('SELECT * FROM planets', outcomes(planetInfo, shipInfo, arrivalNumber));
}   

function outcomes(planetInfo, shipInfo, arrivalNumber){
        console.log(arguments);
}
4

1 に答える 1

1

このコードを実行すると:

selectRowPlanets('query', outcomes(shipInfo, arrivalNumber));

出力outcomes(shipInfo, arrivalNumber)、実際の関数ではなく、コールバックとして渡されます。

コードを呼び出す無名関数ラッパーを作成します。

selectRowPlanets('query', function() { outcomes(shipInfo, arrivalNumber) });
于 2011-12-04T04:30:23.367 に答える