jQuery を使用して 3 つのサービスを呼び出そうとしています。最初の 2 つはデータを取得し、3 番目はデータを使用して更新を行います。
パート 1: 銀行口座情報を取得したい:
- Foo Bank から小切手を受け取りたい
- バーバンクから貯金をもらいたい
パート 2: 両方の銀行から情報を取得できたら、それを自分のサービスで自分の小切手帳にアップロードしたいと考えています。
以下は、Javascript に似た疑似コードです。仕事をするための同期コードを書くことができれば、私が書くようなものですが、それができないことはわかっています。
--PSEUDO CODE
var go = function () {
var acctId;
acctId = 12345;
var myInfo = getAccounts(acctId);
updateCheckbook(myInfo);
}
var getAccounts = function(acctId){
var myInfo;
myInfo = {
id: acctId,
fooDollars: GetFooBank(acctId),
barDollars: GetBarBank(acctId)
};
return myInfo;
}
var updateCheckbook(myInfo){
$.post('http://mySite.com/checkbook/', myInfo);
}
//I want to get the amount from my foo bank account
//Foo Bank uses a web service that allows cross site access
//No bank would ever do this, but I just want to understand how to with $.getJSON.
var fooDollars = function (id) {
var value;
$.getJSON('http://foobank.com/accounts/' + id, null, function (data) {
value = data.checking;
});
//I'm pretty sure this is wrong with an asynchronous call.
return value;
};
var barDollars = function (id) {
//have to use jsonp for bar bank
$.ajax({
url: 'http://barbank.com/accounts/' + id + '&callback=updateBar',
dataType: 'jsonp'
});
//Not really sure how to return a value from a jsonp ajax call
return value;
};
function updateBar(data) {
//Need to take data.savings and get the value back to getAccounts.
//How? I have no idea.
}
jQuery の遅延メソッドが何をするかはある程度理解できますが、すべての部分がどのように組み合わされるかについては少し混乱しています。特に:
- パート 1 では、次のステップに進む前に、両方の銀行口座サービスが完了するのを待つ必要があります。jQuery は複数の遅延の待機を処理しますが、複数の関数が値を返すのを待機する方法を理解できませんでした。
- パート 1 の Foo Bank では、
$.getJSON
. 返されたデータ オブジェクトを取得し、data.checking を取得します。その情報を getAccounts() に戻すにはどうすればよいですか? - パート 1、Bar Bank、2 に似ていますが、JSONP でそれを行うにはどうすればよいですか?
- 私が完全に軌道から外れていて、別の見方をする必要がある場合は、そのフィードバックも高く評価されます。