异步编程新新新新手, 不应该说编程新手
这几日在用 jsbox 构建一个自己的小工具,卡在了 http 异步请求这一块,请求返回值死活无法赋值给一个全局的变量给其他地方使用;
了解了异步的一些基础用法,有通过 then 获取的,有通过定义 async 函数获取的,还有回调函数获取的 但发现有个特点就是拿到的返回值,作用域均仍在内部,拿不出来这个返回值
// 调用 v 站的 api 例子,获取最新主题
function test() {
var result = undefined
let url = "https://www.v2ex.com/api/topics/latest.json"
return $http.get({
url: url
}).then(resp => {
var data = resp.data[0]['title']
return data
})
}
//调用的获取返回值
async function getRet(){
var ret = await test();
console.log(ret);
return ret;
}
getRet() // 拿不到 ret 的值
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.