objective-c - 闭包导致的时间问题怎么解决?
伊谢尔伦
伊谢尔伦 2017-04-24 09:10:38
0
2
717

例如

func hello() -> Bool {
    var result = false
    httpRequestWithCompletionHandler({ is404 in
        result = is404
    })
    return result
}

这个函数的返回值永远是 false,因为 closure 是异步执行的
怎么在调用这个函数的时候,得到真正的返回值呢?
注: result 必须定义在函数体内,不能定义在函数体外

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(2)
大家讲道理
var result_cb = function (result) { alert(result) };

function hello(cb) {
    httpRequestWithCompletionHandler(is404) {
        cb(is404);
    }
}

hello(result_cb);

Macam ini?

迷茫

GO lang ? Fungsi yang dilaksanakan secara tak segerak hanya boleh mendapatkan nilai melalui panggilan balik, jadi hasilnya tidak boleh diperoleh secara langsung dengan mengembalikan bool dari hello.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan