尝试熟悉async/await
,我在chrome中尝试了以下代码:
async function f() {
return await $.get('/');
};
var result = f();
但result
不保存结果(字符串),而是保留Promise
,需要再次等待。
但是这段代码确实给了我响应字符串:
var response = await $.get('/');
如何使用await返回函数的实际响应字符串?
答案 0 :(得分:3)
或者
function f() {
return $.get('/');
};
async test() {
var x = await f()
console.log(x)
}
test()
或
f().then(function(res) {
console.log(res)
}
async/await
只是编写相同逻辑的另一种方式。
答案 1 :(得分:0)
await
和async
基本上只是Promise
之上的语法糖。如果您最后得到Promise
,则仍需将其视为Promise
。
const response = f().then(() => { });
或者,如果你在异步函数中调用它,你可以等待解决它:
async function main() {
const response = await f();
console.log(response);
}
我喜欢使用的模式是将我的主代码包装在自执行的异步函数中,所以我仍然可以使用await:
(async () => {
const result = await doSomething();
console.log(result);
})();
请注意,即使使用该模式,我也需要一个最终catch()
来捕捉它可能没有发现的任何错误:
(async () => {
// blah blah
})().catch(() => {});