Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

192
Views
Cómo invocar la función js en espera en las páginas de afeitar c #

Estoy usando SignalR. Quiero enviar una solicitud de actualización por websocket para cada elemento en foreach para actualizar el temporizador. Pero recibo un error. Tal vez la conexión no pueda establecerse a tiempo para crear la conexión. ¿Necesito usar la función await ti start ()?

Mi contexto de SignalR es: main.js

 "use strict"; var connection = new signalR.HubConnectionBuilder().withUrl("/main").build(); async function start() { try { await connection.start(); } catch (err) { console.log(err); } }; async function ItemStatusRequest(id) { connection.invoke("ItemStatusRequest", id).catch(function (err) { return console.error(err.toString()); }); }

mi codigo html:

 @model IEnumerable<AuctionWebApp.Models.AuctionItemViewModel> @{ ViewData["Title"] = "Index"; } <script src="~/js/signalr/dist/browser/signalr.min.js"></script> <script src="~/js/main.js"></script> <script type="text/javascript"> await start(); </script> <table class="table"> <thead> ... </thead> <tbody> @foreach (var item in Model) { <tr> <td> <p id=@item.Id value=@item.Id>@(item.Id)</p> </td> <td> @Html.DisplayFor(modelItem => item.Name) </td> <td> @*timer*@ <div id=clock@(item.Id) class="countdown"> <span class="hours countdown-time"></span> <span class="countdown-text">:</span> <span class="minutes countdown-time"></span> <span class="countdown-text">:</span> <span class="seconds countdown-time"></span> <span class="countdown-text"></span> </div> <script defer type="text/javascript"> ItemStatusRequest(@(item.Id)) </script> </td> <td> @Html.DisplayFor(modelItem => item.CurrentPrice) </td> <td> @item.StartTime.ToLocalTime(); </td> <td> status </td> </tr>} </tbody> </table>
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Resolví este problema llamando a la función de inicio en la carga de la página.

conexión.inicio(). entonces (función ()
Mi llamada funcional después de que la conexión haya comenzado usando js .then

Al final de html:

 <script> start(@Json.Serialize(Model.Select(x => x.Id.ToString()).ToArray())); </script>

En SignalR-side me manejo así:

 function start(arrId) { connection.start().then(function () { arrId.forEach(id => connection.invoke("ItemStatusRequest", id).catch(function (err) { return console.error(err.toString()); })) event.preventDefault(); }).catch(function (err) { return console.error(err.toString()); });

};

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!