Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';不能在中执行代码。那么回调函数呢?_Javascript_Promise_Callback_Axios - Fatal编程技术网

Javascript Can';不能在中执行代码。那么回调函数呢?

Javascript Can';不能在中执行代码。那么回调函数呢?,javascript,promise,callback,axios,Javascript,Promise,Callback,Axios,如何在下面代码的最后一条注释处执行代码?由于某种原因,我不被允许这样做。我的注释不在回调函数中吗 代码是Stackoverflow的几个答案的结果,我不太明白到底发生了什么 browser.browserAction.onClicked.addListener(async tab => { const contentScriptReady = Promise.all([ browser.tabs.executeScript(tab.id, {file: "axio

如何在下面代码的最后一条注释处执行代码?由于某种原因,我不被允许这样做。我的注释不在回调函数中吗

代码是Stackoverflow的几个答案的结果,我不太明白到底发生了什么

browser.browserAction.onClicked.addListener(async tab => {

    const contentScriptReady = Promise.all([
        browser.tabs.executeScript(tab.id, {file: "axios.min.js"}),
        browser.tabs.executeScript(tab.id, {file: "content.js"}),
        browser.tabs.executeScript(tab.id, { file: "sweetalert2.all.min.js" }),
        browser.tabs.insertCSS(tab.id, { file: "styles.css" })
    ]);

    const connectionStatus = {};

    async function getConnectionStatusData(logicalAddress) {

        let cooperations = await axios.get('http://api.ntjp.se/coop/api/v1/cooperations.json', {
        params: {
          connectionPointId: connectionPointId,
          logicalAddressId: logicalAddressId,
          serviceDomainId: serviceDomainId,
          serviceConsumerId: serviceConsumerId,
          include: "serviceContract"
         }
        });

        /* some more let x = await axios.get... */

        connectionStatus.supportedServiceContracts = await Promise.all( cooperations.data.map(cooperation => axios.get('http://api.ntjp.se/coop/api/v1/serviceProducers.json', {
          params: {
            connectionPointId,
            logicalAddressId,
            serviceDomainId,
            serviceConsumerId,
            serviceContractId: cooperation.serviceContract.id,
          },
           }).then(response => ({ // I want to process the response but I can't put executable code here
            serviceContract: cooperation.serviceContract.namespace,
            serviceProducerDescription: response.data[0].description,
            serviceProducerHSAId: response.data[0].hsaId,
            }))
          )
        );

        await contentScriptReady;
        browser.tabs.sendMessage(tab.id, connectionStatus);

    }

});
这是一个很好的例子。你不能把陈述放在那里。您将要将其重写为

….then(response => {
    console.log("example");  // executable code here
    return {
        serviceContract: cooperation.serviceContract.namespace,
        serviceProducerDescription: response.data[0].description,
        serviceProducerHSAId: response.data[0].hsaId,
    };
})

当我试图将任何可执行代码放在那里时,我的IDE开始抱怨什么错误,但是如果我放
console.log(“test”)无论如何,我得到了
未捕获的语法错误:意外标记。
。它指的是这个时期。请不要把问题放在单行注释上,而不是中间的注释块上。在代码中,你在哪里得到错误。我没有任何错误,但是如果我试图把可执行代码放在单行注释中,那么我会得到一个错误。你在哪里调用“代码> GeCalnStutsStudioDATABAS/<代码>?您正在等待在函数声明之外创建的
contentScriptReady
是可疑的,请注意未经处理的拒绝。非常感谢!我读了你链接的问题的答案,现在明白了。谢谢你!顺便说一句,这是因为没有它会是双卷括号吗?我的错!所以,只有当一个arrow函数返回一个对象时,它才必须被包装在括号中?如果是这样的话,那是因为如果没有它,它将是双花括号吗?是的,具有简明体的arrow函数可以返回除对象文本以外的任何类型的表达式,这将被误认为是块体。即使使用双大括号,也无效-对象文字不能用作语句。再次感谢您的解释!