downPdf.onclick = function() {
pageData='pppp';
console.log("进来了");
var infoHtml=document.getElementById("infoHtml");
a();
console.log("pageData-a-after:"+pageData);
b();
}
function a(){
setTimeout(function(){
pageData='pppp-a';
console.log("pageData-a-1000:"+pageData);
}, 1000);
}
function b(){
console.log("pageData-b:"+pageData);
}
console台打印:
进来了
pageData-a-after:pppp
pageData-b:pppp
pageData-a-1000:pppp-a
我想让他执行完a方法之后再进行后续的打印和b方法,而不是像上面那样?
a传入回调,后续代码放回调里面
downPdf.onclick = function () {
pageData = 'pppp';
console.log("进来了");
var infoHtml = document.getElementById("infoHtml");
a(function () {////////
console.log("pageData-a-after:" + pageData);
b();
});
}
function a(callback) {
setTimeout(function () {
pageData = 'pppp-a';
console.log("pageData-a-1000:" + pageData);
callback()//////////////
}, 1000);
}
function b() {
console.log("pageData-b:" + pageData);
}
ES6 的promise 可以完美解决你的问题