我找不到的JS / jQuery括号错误

时间:2018-06-27 18:51:36

标签: javascript jquery async-await

好,所以这是我正在使用的函数,让行给我这个错误:

  

SyntaxError:缺少参数列表后的

function buildLogRetrieval(jobID, taskID) {
  var div = document.createElement("div")
  var but = $(div).clone(true).css({
    "padding": "5px",
    "background": "black",
    "border-radius": "5px",
    "color": "white"
  })

  logButtons = ["log"]
  finishedButtons = []

  for (b in logButtons) {
    lt = logButtons[b]
    console.log(lt)
    t = but.clone(true).text(lt)

    $(t).on('click', function() {
      let l = JSON.parse(await getTaskLogs(jobID, taskID, lt))
      console.log("click")
    })

    finishedButtons.push(t)
  }
  return finishedButtons
}

如果我将这一行注释掉,代码处理就很好了,但是我似乎无法弄清楚该行中的错误。

5 个答案:

答案 0 :(得分:1)

您正在使用await,而没有异步上下文。试试这个:

function buildLogRetrieval(jobID, taskID) {
    var div = document.createElement("div")
    var but = $(div).clone(true).css({"padding":"5px", "background":"black", "border-radius":"5px", "color":"white"})

    logButtons = ["log"]
    finishedButtons = []

    for(b in logButtons) {
        lt = logButtons[b]
        console.log(lt)
        t = but.clone(true).text(lt)

        $(t).on('click', async function() {
            let l = JSON.parse(await getTaskLogs(jobID, taskID, lt))
            console.log("click")
        })

        finishedButtons.push(t)
    }
    return finishedButtons
}

有关进一步的说明,请阅读this

答案 1 :(得分:1)

您正在使用await,而没有async关键字

  

await运算符用于等待Promise。它只能在异步函数中使用。

$(t).on('click', async function() {
    let l = JSON.parse(await getTaskLogs(jobID, taskID, lt))
    console.log("click")
})

答案 2 :(得分:1)

假设您的环境支持异步/等待,则您的点击处理程序必须为异步才能使用等待。

更改

$(t).on('click', function() {

收件人

$(t).on('click', async function() {

答案 3 :(得分:1)

您得到的错误正好在await getTaskLogs中,要解决该错误,您的代码应如下所示:

$(t).on('click', async function() {
    let l = JSON.parse(await getTaskLogs(jobID, taskID, lt))
    console.log("click")
})

await函数中只能有async

答案 4 :(得分:0)

这是引起错误的行吗?

let l = JSON.parse(await getTaskLogs(jobID, taskID, lt))

如果是这样,则有两个可能的问题:

1)您正在不支持异步/等待的环境中运行(这是javascript的一项相当新的功能)
2)或抱怨您在非异步函数中使用过等待状态