377 Stimmen

Übergabe von Parametern in der Funktion setInterval

Bitte geben Sie an, wie man Parameter an eine Funktion übergeben kann, die mit setInterval .

Mein Beispiel setInterval(funca(10,3), 500); ist falsch.

4voto

Allaye Punkte 795
const designated = "1 jan 2021"

function countdown(designated_time){

    const currentTime = new Date();
    const future_time = new Date(designated_time);
    console.log(future_time - currentTime);
}

countdown(designated);

setInterval(countdown, 1000, designated);

Es gibt so viele Möglichkeiten, wie man das machen kann, für mich persönlich ist das sauber und süß.

1voto

Kaan Karaca Punkte 192

Ich weiß, dieses Thema ist so alt, aber hier ist meine Lösung über die Übergabe von Parametern in setInterval Funktion.

Html:

var fiveMinutes = 60 * 2;
var display = document.querySelector('#timer');
startTimer(fiveMinutes, display);

JavaScript:

function startTimer(duration, display) {
    var timer = duration,
        minutes, seconds;

    setInterval(function () {
        minutes = parseInt(timer / 60, 10);
        seconds = parseInt(timer % 60, 10);

        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds;
        --timer; // put boolean value for minus values.

    }, 1000);
}

1voto

Samuel Diez Punkte 521

Auch mit IE-Unterstützung > 9, können Sie mehr Variablen Insider-Set Intervall, das von Ihnen Funktion genommen werden übergeben. Z.B.:

function myFunc(arg1, arg2){};
setInterval(myFunc, 500, arg1, arg2);

Grüße!

0voto

Sagar Parikh Punkte 305

Sie können eine Bibliothek namens underscore js verwenden. Sie bietet einen netten Wrapper für die bind-Methode und hat eine viel sauberere Syntax. So können Sie die Funktion in dem angegebenen Bereich ausführen.

http://underscorejs.org/#bind

_.bind(function, scope, *arguments)

0voto

nonozor Punkte 813

Eine andere Lösung besteht darin, Ihre Funktion so zu übergeben (wenn Sie Dynamik-Vars haben): setInterval('funca('+x+','+y+')',500);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X