Dış işlevlerin yapması gereken bazı durumları tanımlamak için bir dış değişken kullanabileceğimi biliyorum. Ama şunu düşünün: İç işlev eşzamansız mı? Dış fonksiyon, iç fonksiyon değişkeni değişmeyecek, bu yüzden dış fonksiyonu şimdi nasıl iade edebilirim? Ben dönüş değeri olarak flag
kullanırsanızJavaScript: Eşzamansız bir iç işlev içinde bir dış işlev nasıl döndürülür?
function outer() {
var flag = true;
// For example, a jquery-like ajax call
$.ajax({
// Some settings
error: function(jqXHR, textStatus, errorThrown) {
// Here I want to return outer()
flag = false;
}
});
return flag;
}
Yani, gördüğünüz gibi, outer()
çok muhtemel dönüş gerçek ajax çağrısı uzun zaman alabilir çünkü. Ve aynı sebepten dolayı, async: false
'u ayarlamak istemiyorum çünkü bu sayfa reaksiyonunu durduracaktır.
Bu, eşzamansız akışlarla mümkün değil, ajax isteği tamamlandığında aradığınız 'dış (cb)' parametresine bir geri arama yöntemi eklemenizi öneririm. – olsn
Evet haklısın, yanlış düşünüyordum. – Melkor