刚开始用 jsbox,今天遇到了这么个问题
function test() {
var result = ""
url = "https://www.v2ex.com/api/topics/latest.json"
$http.get({
url: url,
handler: function (resp) {
var data = resp.data[0]['title']
console.log(data) // Synchronized 的轻量级锁
result = data
}
})
return result
}
ret = test()
console.log("test 的返回值是"+ ret)
// 执行结果
"test 的返回值是 undefined"
"Synchronized 的轻量级锁
执行代码,输出的顺序是(为什么是先执行 console.log(),后调用的 test 函数?? 导致 console 的时候,还没拿到函数调用结果 ),为什么 test 函数 return 出来的的 result 是 undefined, 假如我下一个函数依赖于 test 的返回值,怎么处理?