私は何を達成しようとしていますか?
Clayton Lengel-Zigich によって作成された素敵な jenkins ラジエーター アプリケーションを更新しようとしています。これは、jsonp API を使用してジェンキンス マスター サーバーのステータスを取得し、ジョブ ステータスを表示する backbone.js アプリケーションです。このアプリケーションを変更して、複数のマスターから取得し、多くのジョブのステータスを表示したいと考えています。
私は何を試しましたか?
同期機能を更新して、2 つの jsonp リクエストを実行し、結果をマージしようとしました。元のファイルはここにあります: https://github.com/clayton/jenkins-radiator/blob/master/src/radiator.js
sync: function(method, model, options) {
var paramsA = _.extend({
type: 'GET',
dataType: 'jsonp',
processData: true,
url: "http://serverA:8080/api/json?jsonp=?"
}, options);
var a = $.ajax(paramsA);
var paramsB = _.extend({
type: 'GET',
dataType: 'jsonp',
processData: true,
url: "http://serverB:8080/api/json?jsonp=?"
}, options);
var b = $.ajax(paramsB);
function MergeJobs(o, ob) {
for (var z in ob.jobs) {
o.jobs.push(ob.jobs[z]);
}
return o;
}
var joinedJson = []
a.done(function(jsonA) {
joinedJson = jsonA;
});
b.done(function(jsonB) {
MergeJobs(joinedJson, jsonB);
//joinedJson = jsonB;
})
return joinedJson;
},
私が得たもの
Web ページでマージされた結果を確認できると思っていましたが、1 つのサーバーの結果しか表示されません。どのサーバーが表示されるかはランダムであり、私のマージがマージではなく上書きであることを示しています。
私はjavascriptをなめることさえ知らないので、次にどこを見るべきかさえわからない段階にいます。おそらく、_.extend セクションが実際にモデルを更新するものでしょうか? もしそうなら、別の方法で私が望むものを達成する方法はありますか?