gpt4 book ai didi

javascript - 如何使我的 javascript 函数在作用域内异步

转载 作者:行者123 更新时间:2023-12-01 01:31:46 24 4
gpt4 key购买 nike

我的一个 js 文件中有一个名为“updateStatus”的方法。我正在确定每个 JS 文件中所有内容的范围,如下所示。

现在我想让这个函数异步,但是如果我将 async 放在函数声明前面,如下所示,我会收到一条错误消息,指出它需要在同一行上有一个分号。

scope.updateStatus = async function(profileId, isConnected)

'use strict';

// Set local tp namespace
if (typeof yb === 'undefined')
var yb = {};

$(function() {
yb.chat.initializeChat();
});

yb.chat = new function() {
var scope = this;

scope.initializeChat = function() {
scope.initializeHub();
};

scope.updateStatus = function(profileId, isConnected) {
// do some work
};

scope.initializeHub = function() {
scope.chat = $.connection.chatHub;

scope.chat.client.setConnectionStatus = function(profileId, isConnected) {
scope.updateStatus(profileId, isConnected);
};
};

};

最佳答案

tldr:总的来说,您问题的答案是执行以下三件事之一:

  1. 使用支持异步的浏览器
  2. 使用 Promises 并使用支持 Promises 的浏览器
  3. 不要使用异步(或 Promise)。

这将有助于解释您在哪里遇到该错误。我假设是在浏览器中执行代码时发生的。此外,我假设您的浏览器根本不支持 async 关键字。

看看下面的代码:

const scope = {};

scope.foobar = async function() {
return new Promise(resolve => {
console.log('foobar');
resolve();
});
};

scope.foobar();

如果您在最新的 Firefox 或 Chrome 浏览器中执行此代码(例如通过 https://jsbin.com ),它就会起作用。但是,在其他/较旧的浏览器中,它可能会导致您所描述的错误。

如果我的假设是错误的,请进一步澄清。

关于javascript - 如何使我的 javascript 函数在作用域内异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com