考虑以下2个函数:一个返回承诺对象,一个使用。它们在引擎盖下是否完全相同?
async function f1 (event) {
const promise = new Promise(function(resolve, reject) {
fetch('https://google.com')
.then(p=>p.status)
});
return promise
}
async function f2 (event) {
const res = await fetch('https://google.com');
return res.status;
}
我相信我也可以称呼:
var r1 = await f1(url);
var r2 = await f2(url);
这里的问题:1.两个呼叫正确吗?2.钩子下的F1和F2,它们的行为和使用完全相同吗?
如果http.get
返回承诺,则可以简化承诺示例,使其看起来像await
示例。简单地回答您的问题,他们使用不同的语法做同样的事情。
async function f1 (event) {
return https
.get(url)
.then(res => res.statusCode);
}
async function f2 (event) {
const res = await https.get(url);
return res.statusCode;
}