NodeJS - 意外的标识符等待

时间:2017-10-27 06:57:41

标签: javascript async-await

我使用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" });

问题是什么?

2 个答案:

答案 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);
})();

在某些情况下,它可能是一个简单的解决方案