async定义的function直接就返Promise对象
router.getTagsArr = async function (tag = []) {
var tags = [];
for (var val of tag) {
var db = await router.getTags(val);//这个方法返回的是new Promise
tags.push(db);
}
console.log(tags, 1);
//return tags;
return 12;
}
console.log(router.getTagsArr());
如果这样调用,得到的结果是: 第一行:Promise { <pending> } 第二行[。。。。。略] 1 (注,第二行是console.log(tags, 1);)
如果我console.log(await router.getTagsArr()); 第一行[。。。。。略] 1 第二行12
显然,第二个结果是我要的。但是getTagsArr方法我并没有返Promise对象,他怎么就自动变成这样呢? 我知道这个是async定义影响的,但是这个关键字不是指定这个方法内,可以开启同步么?await。
3 回复
全都是在async function 下执行 router.getTagsArr()
返回的是Promise<void>