猿问

如何让JS确保上一个方法执行完毕再执行下一个方法?(纯js,不用jquery

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方法,而不是像上面那样?


函数式编程
浏览 11530回答 2
2回答

千万里不及你

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 可以完美解决你的问题
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答