在promise没被引入时,遇到异步我们常常是这样写的。
例如:联动取地址省市县
//取得省
$.ajax({
success:()=>{
//成功后,通过省id去取市
$.ajax({
success:()=>{
//成功后,通过市去取县
$.ajax({
success:()=>{
//成功后,通过县去取镇
}
})
}
})
}
})
这时你会发现,我们已经掉入层层嵌套,难以推护与读懂,稍有不慎,就可能出错。
此时,就需要promise来解决,因为promise对象可以保存状态,当状发生变化时,回调then里对应的函数。
new Promise(
function (resolve, reject) {
// 一段耗时的异步操作
resolve('成功') // 数据处理完成
reject('失败') // 数据处理出错
}
).then(
(res) => {console.log(res)}, // 成功
(err) => {console.log(err)} // 失败
)
详细的我就不再重复写了。可以查看以下网扯: