Ich habe eine Javascript-Frage in Bezug auf Rückruf und Timeout.Javascript settimeout + Rückruf
Dies ist ein Beispiel-Code-Snippet Ich schrieb:
var f1 = function(){
var result;
window.setTimeout(
function(){
console.log("timeout in 100ms");
result = 10;
}.bind(this), 100);
return result;
};
Also, ich möchte die Funktion die Variable Ergebnis ändern. Ich habe .bind (this) verwendet, um sicherzustellen, dass es weiß, was daraus resultiert.
immer noch die out, wenn ich f1() laufen ist 9, nicht 10, was ist, was ich wollte.
Irgendwelche Hinweise?
[Warum meine Variable unverändert ist, nachdem ich es innerhalb von einem ändern Funktion?] (https://stackoverflow.com/questions/23667086/why-is-my-variable-unterned-after-i-modify-it-inside-of-a-function-asynchron) –
[Wie komme ich zurück? die Antwort von einem asynchronen Anruf?] (https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –
'.bind (this)' hat nicht relevant e zu Variablen; Das wirkt sich nur auf den Wert des Schlüsselworts "this" aus. Und Ihrem Schnipsel scheint etwas zu fehlen, wenn Sie als Ergebnis "9" erhalten. –