一般来说程序都是从上往下按照顺序执行的,但是在执行网络请求时往往会等待一会儿才能有结果返回,我们不想浪费时间在等待上,于是就有了异步执行的方法,即先调用,不等结果直接进行下边的程序,当结果返回之后再看返回的结果,如Promise方法。
Promise方法的主要想法是,先写要调用的语句块即请求部分,当请求成功后返回resolve,当调用失败时则返回reject。于是先写Promise的调用部分就是这三块:
new Promise((resolve,reject)=>{
xxxxxxxxxxxxxxxxxxxxxxxxxx //请求的内容用xxx表示
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxx
resolve(res); //成功则收到返回信息,作为res参数传给主程序
reject(error); //失败则将error参数传给主程序
})
在主函数中用
.then((res)=>{
console.log(res) //来打印获得的返回数据res
}).catch((error)=>{
console.log(error) //来打印获得的错误信息(若请求失败的话,成功则没有error返回)
})
解释完毕。当然以上并非可以执行的程序,而是仅就Promise方法的核心部分进行了解释,完整的可执行语句还需稍作完善,且不难搜索到,这里就不提供例子了。