私は問題があります。コードが別のセッションIDを作成することが高速である可能性があります。私はお互いの後に1つずつ実行する2つの別々のHTTPクライアントを持っています(下記のコードを参照)。私がしている奇妙な問題は、私がやっているすべての2番目のHTTPクライアント要求は、いくつかのセッションデータを取得することです。しかし時にはそれは問題を終了させない、セッション情報が定義されていないときに、データをうまく返します。 2番目のHttpクライアントを削除すると、問題は解決されなくなりました。複数のHTTPクライアント要求がセッションデータを格納していない
私はそれが非同期クライアントにダウンする可能性があると思う、私は次の操作のために同じHttpクライアント変数を再利用することができ、セッションデータが保持されるだろうか?どんな提案や知識があれば大いに感謝します。
this.login = function(username, password, loaded, failed, incorrect) {
var xhr = Ti.Network.createHTTPClient({
onload : function(e) {
var response = this.responseText;
switch(response) {
case "1":
loaded();
break;
case "0":
incorrect();
break;
case "2":
incorrect();
break;
case "3":
incorrect();
break;
default:
failed();
}
},
onerror : function(e) {
failed(e);
},
timeout : 5000,
validatesSecureCertificate : false
});
xhr.open('POST', this.url, true);
xhr.send({
'action' : 'login',
'email' : username,
'password' : password,
});
var getdb = Ti.Network.createHTTPClient({
onload : function(e) {
var response = this.responseText;
Ti.App.Properties.setString('name', response);
},
onerror : function(e) {
failed(e);
},
timeout : 5000,
validatesSecureCertificate : false
});
getdb.open('POST', this.url, true);
getdb.send({
'action' : 'get_name',
'device' : 'mobile'
});
};
これを実装するためにサードパーティのツールを使用しない限り、約束は利用できませんので、実際には良い解決策ではありません。 –
私はあなたの解決策であり、OPはいくつか前進するための提案と私は、彼が探しているものとして、正確に約束されていることについて何らかの洞察を与えました。あなたのロジックに従うと、Node.jsはすべてをモジュールとして使用する必要があります。 Titaniumでは、約束を使用するには、RSVPというパッケージが必要です。 [appceleratorチタンで約束を使用する](http://shockoe.com/blog/using-promises-with-appcelerator-titanium/)。私はあなたの論理を恐れています。 – Cyclotron3x3