私は少し緑ですので、ご容赦ください。
値が返されるまでSharePointWebサービスをポーリングする必要があります。コードのフォーマットが間違っていると思います。これに対処する既存のスレッドがある場合は、それを指摘してください。私の比較的限られた理解は私がそれを認識するのを妨げたかもしれません。
function Poll2(){
$.ajax({
//Use an ABSOLUTE reference to your target webservice
url: "https://mydomain.com/Sandbox/bitest/_vti_bin/lists.asmx",
type: "POST",
dataType: "xml",
data: soapEnv,
success:processResult,
complete: Poll2,
timeout: 5000,
contentType: "text/xml; charset=\"utf-8\"",
async: true
});
}
私の望みは、成功するまで5秒ごとにサービスをポーリングし、成功すると「processResult」関数に進み、そこですべてのデータが処理されることです。親関数を参照して無限ループを作成したのではないかと思います。
-------------------編集と新しいコード-------------------
私はこのブログ投稿で、私が探しているものを大まかに達成する解決策を見つけました。結局のところ、私は本当にリクエストを1回だけ実行したいと思っています。ただし、「無限の」ポーリングルーチンに関しては、これは非常にうまく機能します。
(function poll() {
setTimeout(function () {
$.ajax({
type: 'POST',
dataType: 'json',
url: 'http://somewhere.com/rest/123',
success: function (data) {
MyNamespace.myFunction(data); //DO ANY PROCESS HERE
},
complete: poll
});
}, 5000);
})();
ただし、このルーチンは、実行後5秒まで最初のポーリングを初期化しないことに注意してください。シンプルなコードですが!著者に感謝します。