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