let router = new Router();
router.get('/info', async(ctx) => {
let result = await request.get('http://api/xxxx');
ctx.body = result;
});
这样是可以在
/info
页面上获取到request返回值的,但是如何对其内部进行操作?我使用console.log(result.xxx)输出都是undifined(假设api返回的是json)
刚出去吃饭去了···
const apireq = url => new Promise((resolve, reject) => request.get(url, (err, response, body) => {
if (err) {
reject(err);
} else {
resolve(body);
}
}));
现在貌似支持promise了,不用额外引入@熊丸子…
request.get(‘http://api/xxxx’);封装成promise的形式
var Promise = require('Promise');
function callApi(){
return new Promise(function(resolve,reject){
setTimeout(function () {
resolve("aaa");
}, 2000);
});
}
async function runAsync(){
let myVal = await callApi();
console.log(myVal);
}
runAsync();
我写了一段你可以参考下。
好吧 那看来只能这样了··· 我也是封装了一段Promise来执行
const apireq = url => new Promise((resolve, reject) => request.get(url, (err, response, body) => {
if (err) {
reject(err);
} else {
resolve(body);
}
}));