Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

191
Visualizações
How to invoke awaiting js fuction in razor pages c#

I'm using SignalR. I want to send updating request by websocket for each elements in foreach to update timer. But i'm getting error.Maybe connection can not get in time create connection. Is i need to use await ti start() function?

My context of SignalR is: 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());
    });
}

my html code:

@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 Respostas
Responde à pergunta

0

I solved this problem by calling start function on page lodaing.

connection.start().then(function ()
My functiong calling after connectiong has start by using js .then

At the end of html:

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

At SignalR-side I'm handle like this:

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda