0

以下に、extjs4アプリケーションに現在ログインしているユーザーを設定するためのコードを示します。アラートのコメントを外すと、コードはアラートが受け入れられるまで待機してから続行するようです(そう思われます)。これにより、非同期呼び出しが正常に完了するのに十分な時間が与えられます。アラートをコメントアウトすると、AJAX呼び出しが時間内に戻らなかったため、変数「employeeFilter」が設定されません。その場合、代わりに「employeeFilter」をnullに設定します。AJAX応答が正常に返されるまで待機するように、これを修正するにはどうすればよいですか?

var loggedInUserId = null;
Ext.Ajax.request({
    url: '/Controls/UserList/UserService.asmx/GetLoggedInUserId',
    method: 'POST',
    jsonData: { 'x': 'x' },
    success: function (response, opt) {
        loggedInUserId = Ext.decode(response.responseText).d;
    },
    failure: function (response) {
    }
});

//alert(loggedInUserId);
var employeeFilter = loggedInUserId;
var projectFilter = '-1';
4

1 に答える 1

2

私はこれをしたでしょう。

var employeeFilter;        
Ext.Ajax.request({
    url: '/Controls/UserList/UserService.asmx/GetLoggedInUserId',
    method: 'POST',
    jsonData: { 'x': 'x' },
    success: function (response, opt) {
        employeeFilter = Ext.decode(response.responseText).d;
        //Do here whatever you need to do once the employeeFilter is set. probably call a function and pass the employee filter as parameter. 
    },
    failure: function (response) {
    }
});

var projectFilter = '-1';
于 2012-10-10T00:10:05.147 に答える