我有 jQuery 加载一个 json,当 json 准备好时,我使用 .then() 表示法来运行一个函数 doThis()。但是,如果我在 doThis() 上传递一个变量,它会返回“未定义”。
我想了很多:在我的应用程序中,jQuery 在鼠标单击时运行,并且在传递变量时,它确实在第二次鼠标单击时运行。好像 json 被加载了,但是如果我传递一个变量,jQuery 不会等待 json 完成加载。
这有效:
$.getJSON('/endpoint/', function(data) {
data = data
})
.then(doThis)
即使括号中没有变量,这也不起作用:
$.getJSON('/endpoint/', function(data) {
data = data
})
.then(doThis())
我确信这与 JavaScript 的架构有关。如果有人能启发我一点,那就太棒了。
提前致谢!