我有一个奇怪的Promise行为,返回不正确的值。
var years = []
$.getJSON('https://omdbapi.com?t=titanic&apikey=thewdb')
.then(function(movie){
years.push(movie.Year)
return $.getJSON('https://omdbapi.com?t=shrek&apikey=thewdb')
})
.then(function(movie){
years.push(movie.Year)
console.log(years) // ["1997", "2001"]
})
console.log(years) // [] return at the beginning
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
首先返回的空数组是从代码的末尾开始的 - 这对我来说很奇怪。你能解释一下吗?谢谢,
答案 0 :(得分:0)
第一个console.log打印[]的原因是因为$ .getJSON和.then()函数尚未执行。这称为异步代码,意味着事物可能无法按照它们在代码中出现的顺序执行。