Is there some way to handle async/await behind an ASMX service?

前端 未结 3 1859
再見小時候
再見小時候 2020-11-28 12:00

I have a web app serving a WCF REST API for JSON and an ASMX web service. The application has been around for a few years. It\'s based on ASP.NET 2.0, but upgraded to .NET 4

3条回答
  •  伪装坚强ぢ
    2020-11-28 12:43

    You might not be able to make the ASMX service itself behave in an async way, but if you are calling from a WebApp using javascript you can wrap a promise around the service when calling in order to take advantage of async within the client-side.

    As stated, it does not make your service async, but is an example of using this service in an async way within the client (ie, a javascript promise is used in this instance to halt further operation until the service has resolved. Similarly it can be adjusted to continue operation and perform other actions once resolved or failed).

    Optimising the service itself is only half of the solution, the other half is within the client, so I thought this would be a helpful expansion to some :)

    Javascript Code:

    var tripObj;
    
    async function getTripObject(tripId) {
    
    
      // Ensures Trip is fetched before proceeding 
      var promise = new Promise(function (resolve, reject) {
        ASMXService.getTrip(tripId, async function (ret) {
          tripObj = ret;
    
          resolve("Success");
        }, function () {
          reject("Error");
        });
      });
    
      await promise;
    
    }
    

提交回复
热议问题