我使用NodeJS并尝试通过async / await包装我的代码,但每次获取"语法错误:意外的标识符"错误。这是我的代码:
async function showOff(phone) {
return new Promise((resolve, reject) => {
var message = 'Hey friend, I have a new ' + phone.color + ' ' + phone.brand + ' phone';
resolve(message);
});
};
let message = await showOff({ color: "black", brand: "Sony" });
问题是什么?
答案 0 :(得分:1)
await
只能在async
函数中使用。
function showOff(phone) {
return new Promise((resolve, reject) => {
var message = 'Hey friend, I have a new ' + phone.color + ' ' + phone.brand + ' phone';
resolve(message);
});
};
async function phone() {
let message = await showOff({ color: "black", brand: "Sony" });
console.log(message);
}
phone();

async
表示哪个函数正在等待响应,而不是执行异步操作的函数。
答案 1 :(得分:1)
来自doc https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await
await运算符用于等待Promise。 它只能在异步功能中使用。
所以你可以简单地将所有代码包装在一个匿名的异步函数中
(async () => {
async function showOff(phone) {
return new Promise((resolve, reject) => {
var message = 'Hey friend, I have a new ' + phone.color + ' ' + phone.brand + ' phone';
resolve(message);
});
};
let message = await showOff({ color: "black", brand: "Sony" });
console.log(message);
})();
在某些情况下,它可能是一个简单的解决方案