2017-09-12 2 views
1

私のアプリケーションでは、ODATA restサービスが呼び出され、実行に長時間を要し、応答を返します。これにより、ブラウザーはWait/Killアラートポップアップを何度も表示し始めます。どのように長時間実行されているサービスの原因のブラウザがポップアップするのを防ぐにはKill/Wait alert?

this.getView().setBusy(true); //start showing busy indicator 
. 
. 
. 
setTimeout(function() { 
    oModel.create('/serviceURL?sap-client=' 
      + sapClient, requestObj, null, function(
      data, oev) { 

    // Success function 
     console.log('fffff'); 

     that.getView().setBusy(false); 
     if (data.JsonOut.indexOf("message:") != -1) { 
      var arr = data.JsonOut.split("message:"); 

      sap.m.MessageBox 
        .alert(arr[1].split(",")[0]); 
     } 

     that.onBindTable(); 
    }, function(err) { 
     // Error function 
     that.getView().setBusy(false); 
     var errorObj = JSON.parse(err.response.body); 

     var sMsgs = errorObj.error.message.value; 
     sap.m.MessageBox.alert(sMsgs); 

    }); 
}, 2000); 

. 
. 
// rest of code gets executed 
. 
. 

コールを非同期にするにはsetTimeOut()関数内でリクエストを囲みましたが、それでも問題は解決しません。ポップアップメッセージが表示されないようにするにはどうすればよいですか?

+1

は 'それはのsetTimeoutは全く何をするかではありません、ないasynchronous'呼び出しを行い、あなたと同じように見えますhttps://stackoverflow.com/questions/46175164/how-to-disable-async-in-read-sapui5のOPは、コードをスワップする必要があります:pあなたは非同期を望みます、彼はしません!! –

+0

サービスコール中にブラウザーを応答させる方法 –

答えて

0

oModel.createメソッドの5番目のパラメータを 'true'に設定すると、呼び出しが非同期になり(setTimeOut()が削除される)

oModel.create('/serviceURL?sap-client=' 
      + sapClient, requestObj, null, function(
      data, oev) { 

    // Success function 
     console.log('fffff'); 

     that.getView().setBusy(false); 
     if (data.JsonOut.indexOf("message:") != -1) { 
      var arr = data.JsonOut.split("message:"); 

      sap.m.MessageBox 
        .alert(arr[1].split(",")[0]); 
     } 

     that.onBindTable(); 
    }, function(err) { 
     // Error function 
     that.getView().setBusy(false); 
     var errorObj = JSON.parse(err.response.body); 

     var sMsgs = errorObj.error.message.value; 
     sap.m.MessageBox.alert(sMsgs); 

    }, true); 

ヒントを見つけてください。javascript APIリファレンスが見つかりませんでしたか?任意の実行時間の長い同期コードを意味するものではありません、それだけで周囲のコードに関しては非同期だ魔法の非同期です - -

https://archive.sap.com/discussions/thread/3503659

関連する問題