線執行這個問題之前,我已經認爲我已經掌握了JavaScript的..但沒有,甚至還沒有接近:)的JavaScript:回調不停止以下
我目前正在require.js編程並嘗試使用回調(由於異步js)的方法,但問題是,代碼繼續執行後,我的callback();電話。
見下面的例子:
var Second = function() {
console.log("Second init");
};
Second.prototype.load = function (callback) {
console.log("Second load");
var timeOut = setTimeout(function() {
clearTimeout(this);
if (true) {
console.log("Second interval ended.. GOOD");
callback(true);
}
console.log("Second interval ended.. NO, YOU SHOULD NOT BE HERE!");
callback(false);
}, 1000);
};
var First = function() {
console.log("First init");
var second = new Second();
second.load(function (returned) {
console.log("Second returned: " + returned);
});
};
First();
這將輸出:
First init
Second init
Second load
Second interval ended.. GOO
Second returned: true
Second interval ended.. NO, YOU SHOULD NOT BE HERE!
Second returned: false
顯然在哪裏最後兩句是太多了......我會want't是做回調有道在以下scenarion ..我想:
if (true) {
console.log("Second interval ended.. GOOD");
return callback(true);
}
其中一期工程,以及:
if (true) {
console.log("Second interval ended.. GOOD");
return function() {
callback(true);
}
}
其中一期工程太多,但他們都感覺不對的解決方案,我..如何正確地做到這一點?謝謝!
好吧,太棒了:) - 它只是覺得有點荒謬,我認爲這是我自己愚蠢的發明,嘗試「返回回調();」 - 如果沒有關於這個問題的更多意見,我很快就會接受,thnx! –
據我所知,沒有任何官方文檔(儘管您可以將官方Node源代碼作爲應該如何使用的體面指標)。但是,'return'要麼是提供結果值,要麼是功能的突破。爲返回值創建一個新的範圍沒有任何作用,所以你可以假設'return callback()'是完成你要求的最好的方法。 – hexacyanide
現在我修改了我的資源來使用它,它看起來並不壞,我用這個來滾動。 –