I see a lot of questions (e.g. here or here, just in the past couple of hours) where the poster is making an Ajax call within a function (and doing something with the results in a callback) and doesn't understand why the results aren't available either later in the parent function or as the return value of the parent function. I.e. they don't understand that Ajax is asynchronous.
Unfortunately since they don't understand the problem, the questions are often phrased in very different ways -- they think they have an issue with variable definition, or return values, or scope. This makes it hard to close such questions as duplicates.
So, two questions: 1) if we were to close such questions as duplicates, is there a "canonical" answer that would be good to use, and 2) how do we deal with the fact that these are, in fact, duplicates (in terms of the deeper issue), but aren't phrased as such -- really aren't "exact duplicates" -- because of misunderstanding?