async、await的理解使用
let asyncFn = async()=> {
let data = null;
data = await getData(url);//getData()返回的数据是 {name:'my name is data!'}
console.log(data.name);//打印出的是my name is data!
}
let notAsyncFn =()=> {
let data = null;
data = getData(url);//getData()返回的数据是 {name:'my name is data!'}
console.log(data.name);//打印出的是undefined; 因为data此时还是null;
}
await后面的函数返回的是一个Promise对象,运行结果可能是 rejected,所以最好把 await 命令放在 try...catch 代码块中。
var getData = function (url){
console.log("get start");
console.log(url);
return new Promise(function (resolve, reject) {
//下面的request()方法 是nodeJS的request模块;
request(url, function (error, response, body) {
if (!error && response.statusCode == 200) {
resolve(response.body);
}else{
//throw new Error(response.statusText)
reject('===error===');
}
});
})
console.log("get end");
}