Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107

    Impostare timeout a funzione JS

    Ho una funzione JS che può impiegare un tempo imprecisato per arrivare alla sua completa esecuzione e a tornare quindi il relativo callback. C'è un modo per settare un timeout in modo da eseguire del codice se dopo X ms il callback originale non mi fosse ancora stato tornato? Un po' come avviene per il timeout di ajax

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,320
    ..usa 2 timeout differenti cn la stessa callback ma con parametri diversi. Tra l'altro la tua richiesta nn è molto chiara
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,389
    Ciao
    l'argomento mi ha incuriosito ed ho fatto una ricerca.

    Puoi fare una cosa del genere

    codice:
    ExecutorService executor = Executors.newSingleThreadExecutor();Future<String> future = executor.submit(new Callable() {
    
    
        public String call() throws Exception {
            //do operations you want
            return "OK";
        }
    });
    try {
        System.out.println(future.get(2, TimeUnit.SECONDS)); //timeout is in 2 seconds
    } catch (TimeoutException e) {
        System.err.println("Timeout");
    }
    executor.shutdownNow();
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    Ciao
    l'argomento mi ha incuriosito ed ho fatto una ricerca.

    Puoi fare una cosa del genere

    codice:
    ExecutorService executor = Executors.newSingleThreadExecutor();Future<String> future = executor.submit(new Callable() {
    
    
        public String call() throws Exception {
            //do operations you want
            return "OK";
        }
    });
    try {
        System.out.println(future.get(2, TimeUnit.SECONDS)); //timeout is in 2 seconds
    } catch (TimeoutException e) {
        System.err.println("Timeout");
    }
    executor.shutdownNow();
    grazie ma questo è Java, io chiedevo per JS

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    107
    Quote Originariamente inviata da linoma Visualizza il messaggio
    ..usa 2 timeout differenti cn la stessa callback ma con parametri diversi. Tra l'altro la tua richiesta nn è molto chiara
    intendi qualcosa del genere?

    codice:
    test(function(cbType) {
        if (cbType === 'timeout') {
            console.log('request took longer than 15s')
        } else {
            console.log('ok')
        }
    })
    
    function test(cb) {
        setTimeout(function() { cb('timeout') }, 15000)
        $.ajax({
            success: function(result) {
                cb('ok')
            }
        });
    }
    NB so che Ajax ha un suo parametro di timeout, ma questo è solo un esmpio...la funzione vera è asincrona ma non utilizza direttamente ajax quindi non posso metterci mano in questo modo
    Ultima modifica di l736k; 12-07-2021 a 14:13 Motivo: quote

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.