问题描述
例如
func hello() -> Bool { var result = false httpRequestWithCompletionHandler({ is404 inresult = is404 }) return result}
这个函数的返回值永远是 false,因为 closure 是异步执行的怎么在调用这个函数的时候,得到真正的返回值呢?注: result 必须定义在函数体内,不能定义在函数体外
问题解答
回答1:var result_cb = function (result) { alert(result) };function hello(cb) { httpRequestWithCompletionHandler(is404) {cb(is404); }}hello(result_cb);
这样?
回答2:GO lang ? 异步执行的函数只能通过回调来获得值,因此不能直接通过hello返回bool的方式来获得结果。