相关疑难解决方法(0)

如何从异步调用返回响应?

我有一个foo发出Ajax请求的函数.我怎样才能从中回复foo

我尝试从success回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            // return response; // <- I tried that one as well
        }
    });

    return result;
}

var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery asynchronous xmlhttprequest

5208
推荐指数
38
解决办法
134万
查看次数

Cypress Cucumber - 如何让我的步骤按顺序运行?

这里是 Javascript/Cypress 的相对新手。我正在使用 Cypress Cucumber.js 插件运行一些测试。问题是我无法让我的步骤按顺序运行 - 由于 js 的异步性质,“Then”步骤在“Given”等之前运行。显然,这会成为一个问题,因为测试会失败!

我的问题:

1)我们如何使用异步代码使黄瓜步骤始终按顺序运行?我在这里看到了类似的问题:How to wait for a JavaScript Promise to resolve before resuming function? ,并根据我对给定块应用 async/await 的响应,希望它会在我的步骤中强制执行命令,但这不起作用。

这是我的功能文件:

Given I get the data from CMS
Then I can verify that the title is the same as the CMA title in tab "0"
And I can verify that the link is the correct link in tab "0"
Run Code Online (Sandbox Code Playgroud)

脚步:

  Given('I get the data from CMS', async() => {

    let api = await …
Run Code Online (Sandbox Code Playgroud)

javascript cucumber node.js cucumberjs cypress

8
推荐指数
1
解决办法
2639
查看次数

chart.js 异步回调(带返回值)

我目前正在开发一个将 chart.js 移植到 blazor端口。在那里,我们从 JavaScript 到 C# 进行互操作,反之亦然。Chart.js 支持自定义刻度回调onClick,onHoveronLeave图例处理程序等回调。为了让这些回调调用 C#,我们设置了一个函数,...args该函数通过 blazor 调用 C# 方法。Blazor 然后从 C# 方法中获取结果并将其返回给 JavaScript。这样我们就可以在两者之间进行充分的沟通。

当我们需要担心返回值时(比如自定义刻度回调),我们需要确保 chart.js 获得正确的值。在(服务器端)blazor 中,您只能与 JavaScript 异步通信,因为它构建在 websockets 上。这意味着此类互操作调用的返回值始终是一个Promise对象,而 chart.js 不理解这一点。

现在我想知道我可以做什么。chart.js 有没有办法使用异步回调?

附言。我对 Javascript 没有经验。我已经问过另一个关于同步等待承诺(在同一上下文中)的问题,但这不起作用。

pps。在这个专门的 github 问题中有更多信息(但主要是在 C# 方面)。

javascript c# chart.js blazor

5
推荐指数
0
解决办法
299
查看次数