我正在尝试学习async/await
,我在Chrome中尝试了以下代码:
async function f() {
return await $.get('/');
};
var result = f();
但是result
并不保存结果(字符串),而是保存了一个需要再次等待的Promise
。这段代码确实给了我响应字符串:
var response = await $.get('/');
如何使用await从函数中返回实际的响应字符串?
我正在尝试学习async/await
,我在Chrome中尝试了以下代码:
async function f() {
return await $.get('/');
};
var result = f();
但是result
并不保存结果(字符串),而是保存了一个需要再次等待的Promise
。这段代码确实给了我响应字符串:
var response = await $.get('/');
如何使用await从函数中返回实际的响应字符串?
任一
function f() {
return $.get('/');
};
async test() {
var x = await f()
console.log(x)
}
test()
或者f().then(function(res) {
console.log(res)
}
async/await
是一种编写相同逻辑的另一种方式。
f()
函数里写了 return await $.get('/');
,这个await是无用的吗? - user3599803f()
方法时,此等待没有任何效果。如果您想在f()
内部编写更多代码行,则您的等待将有意义:f() {let res = await $.get('/'); console.log(res)};
- messerbillawait
和async
基本上只是在Promise
的基础上添加了一些语法糖。如果最终得到的结果还是一个Promise
,你仍然需要像处理Promise
一样对待它。
const response = f().then(() => { });
如果你在异步函数中调用它,你可以使用await来解决它:
async function main() {
const response = await f();
console.log(response);
}
(async () => {
const result = await doSomething();
console.log(result);
})();
catch()
来捕获任何未被捕获的错误。(async () => {
// blah blah
})().catch(() => {});
result
上使用.then()
。 - Kevin B