关于在函数执行完成之后才执行的函数,也算是异步加载的函数事件,可以通过如下方式完成
1,最笨的方法:setTimeOut;而且需要计算时间的间隔,一旦出现加载问题或其他不可预知的错误,可能导致程序漏洞
2.使用回调函数,比如当这个函数运行结束之后,把另一个函数引入到这个函数的末端
3.使用promise,ES6的方法:
let promise = new Promise((resolve,reject) => {
// 这里可以写部分逻辑,并判断是否执行下一步操作
if() {
$.ajax().then(res => {
resolve(res),这里可以传递一个参数,而且只能传递一个参数
})
}else {
reject()
}
})
promise.then(res => {
console.log(res)
// 这里可以接受返回值,如果你想再进行链式操作,还可以继续return 一个promise对象
return new Promise((resolve,reject) => {
resolve()
})
// 也可以直接返回一个数据,也是可以直接在.then后面调用的
return 'aa'
})
// 然后继续调用
promise.then().then()...
你还可以使用ES6的异步函数
async
function getAsync(aa,time) {
setTimeout(function() {
return aa
},time)
}
async function run () {
await name = getAsync(12,3000)
console.log(name)
await age = getAsync(22,1000)
console.log(age)
}
run() //先打印name:12,后打印age:22