【问题标题】:Promise not returning error - returning Syntax error [duplicate]承诺不返回错误 - 返回语法错误 [重复]
【发布时间】:2021-01-04 10:28:38
【问题描述】:

我是一名 JS 学生。我有一段代码返回错误。

const { promises } = require("fs");

 const compareToTen = function(testNumber) { 
     return new Promise((resolve, reject) => {  
         if (typeof testNumber !== "number") { 
             reject("Not a number"); 
        }
         
         
         setTimeout(() =>{
                if (testNumber > 10) { 
                    resolve(true); 
                } 
                else { 
                    resolve(false);
                }
                }, testNumber*100)
    })
} 

let timeStart = Date.now()
let result= await compareToTen(8)
console.log("time", Date.now() - timeStart)
console.log("result", result)


SyntaxError: await is only valid in async function 这是返回语法错误。 你们能解释一下我在这里做错了什么吗?

【问题讨论】:

  • 您只能在 async 函数中使用 awaitlet result= await compareToTen(8) 不在异步函数中。请改用.then()
  • 还有use ; 一直,而不只是某些时候
  • 尝试将函数定义为函数,而不是const 变量。这里可能是function compareToTen(...)。您使用的这种风格会导致很多混乱和复杂,这通常是不必要的,除了一些非常狭隘的情况需要它。

标签: javascript promise async-await es6-promise


【解决方案1】:

如果您需要在顶层使用async,通常最简单的方法是编写一个main 函数,例如:

async function main() {
  // My code with await in it
}

// Call it
main();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2018-11-01
    • 2015-11-04
    相关资源
    最近更新 更多