objective-c - 闭包导致的时间问题怎么解决?

浏览:26日期:2023-12-17

问题描述

例如

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的方式来获得结果。

相关文章: