详解koa2学习中使用 async 、await、promise解决异步的问题

2020-06-17 05:59:02易采站长站整理

get : function (url){
console.log("get start");
console.log(url);
return new Promise(function (resolve, reject) {
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");
}
}

把package也贴出来


{
"name": "koa2-demo",
"version": "0.1.0",
"scripts": {
"start": "NODE_ENV=development ./node_modules/.bin/nodemon bin/run",
"test1": "NODE_ENV=test ./node_modules/.bin/nodemon bin/run",
"koa": "./node_modules/.bin/runkoa bin/www",
"pm2": "pm2 start bin/run ",
"test": "./node_modules/.bin/mocha -u bdd"
},
"dependencies": {
"co": "^4.6.0",
"debug": "^2.2.0",
"ejs": "^2.5.6",
"jade": "~1.11.0",
"koa": "^2.0.0",
"koa-bodyparser": "^2.0.1",
"koa-convert": "^1.2.0",
"koa-json": "^1.1.1",
"koa-logger": "^1.3.0",
"koa-onerror": "^1.2.1",
"koa-request": "^1.0.0",
"koa-router": "^7.0.0",
"koa-static": "^1.5.2",
"koa-views": "^5.0.1",
"runkoa": "^1.5.2"
},
"devDependencies": {
"mocha": "^2.4.5",
"nodemon": "^1.9.1",
"should": "^8.3.0",
"supertest": "^1.2.0"
}
}

哦对了 async函数里可以多次使用await 语句,我以为只能用一次await!!!并不是的!!!!

async更详细的介绍可以 看这里 阮一峰async 函数的含义和用法