首先,看看這個例子:如何從同步回調中返回?
var calculate = function(callback) {
// calculating...
callback(5);
}
var parent = function() {
var x = 0;
var calculatedValue = calculate(function(output) {
return output; // return #1
x = output;
});
return x; // return #2
return calculatedValue; // return #3
}
我的目標是calculate
函數內「計算」的值,該值必須由parent
函數返回。
我應該在哪裏放置return語句,以及爲了實現這個目的我應該返回什麼?
我試過三種情況:
return #1
這裏output
值由callback
函數返回,而不是parent
功能,所以父母返回undefined。
return #2
這裏執行callback
功能之前返回x的值,所以父母返回0
return #3
+ return #1
在這裏,我試圖從callback
返回output
,然後(以爲回調的返回值可能以某種方式成爲calculate
本身的返回值),返回calculatedValue
,但同樣,父返回未定義。
請提出一個方法,並普拉克公司在here
「計算」是異步的嗎?你能告訴我們你的實際代碼嗎? – Bergi
我希望不是。參見[這裏](http://plnkr.co/edit/WdF8TzxPUPcIZDIVY94O?p=preview)。沒有實際的代碼,這只是一個想法。不用擔心:) –
如果這真的是你所有的代碼,那麼它是同步的(我曾預計會有更多的behing'//計算...')。那麼爲什麼你使用回調而不是簡單地執行'return 5'? – Bergi