javascript - 显示来自外部 javascript 的返回数据

标签 javascript c#

我正在尝试显示来自外部 Javascript 的返回数据。

这是我的代码

全局函数.js

function CurrentDate() {
var url = CurrentDateUrl();
$.get(url, function (e) {
    var Date = e.toString();
    console.log(e);
    console.log(Date);
    return Date;
});
// RETURN the Current Date example. 11/29/2013 10:57:56 AM
}

Sample.cshtml( View )

<h2>Transaction Date: <b><span id="TransactionYear"></span></b></h2>

<script>
function CurrentDateUrl(){
    return '@Url.Action("CurrentDate", "Global")';
}


$(document).ready(function () {
    var Date = CurrentDate();

    document.getElementById("TransactionYear").innerHTML = Date; // the return is UNDEFINED

});
</script>

正如我们在 global-functions.js 中看到的,没有问题,因为它从我想要的返回,但是当我尝试调用函数 CurrentDate() 时,它将返回到 UNDEFINED 。还有其他方式显示吗?或者其他好的方法?

编辑:

问题:你能验证函数 CurrentDate() 被调用了吗?

  • 是的。当我尝试在 CurrentDate() 中返回硬编码字符串时,它将显示。

我尝试了下面建议的答案

function CurrentDate() {
var url = CurrentDateUrl();
var result;
$.get(url, function (e) {
    var date= e.toString();
    console.log(e); // will return the Date in console
    console.log(date); // will return the Date in console
    result = date;
    console.log(result); // will return the Date in console
});
console.log(result); // will return UNDEFINED in console
return "Sample";

}

输出

交易日期:样本

最佳答案

我认为您以错误的方式使用了 $.get() 函数!请看下面link获取更多信息。不能返回值,应该在请求结束时执行回调函数!

您应该在 $.get() 中将函数作为回调传递(您正在执行),并在该函数中执行您想要的逻辑(您现在没有执行。)

我宁愿这样做(可能对你的情况不好,因为你使用的是外部文件):

$.get(url, function (e) {
    var Date = e.toString();
    console.log(e);
    console.log(Date);

    document.getElementById("TransactionYear").innerHTML = Date
});

或者在你的情况下试试这个(同步调用):

 function CurrentDate() {
    var url = CurrentDateUrl();
    var result;

    $.ajax({
    url: url,
    type: 'get',
    async: false,
    success: function(data) {
        result = data;
    } 
 });
 return result;
}

请注意:我正在使用 $.ajax() 并且我没有在 $.ajax 中返回任何值。我还添加了 async: false。现在您可以以这种方式返回结果,但它不是异步的

如果你想使用异步请求,你必须使用回调函数。一些实现可以像下面的例子:

  function CurrentDate(callbackFunction) {
    var url = CurrentDateUrl();
    var result;

    $.get(url, function (e) {
        var Date = e.toString();
        callbackFunction(Date);
    });
}

// Call your function in code like this
CurrentDate(function(result) {
    // handle your result here
});

关于javascript - 显示来自外部 javascript 的返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754873/

相关文章:

c# - 从 ListView (WPF) 中的 SelectedItem 启动键盘导航

c# - 如何在 C# 中使用继承类实现 Xml 序列化

c# - 从 C# 代码调用 delphi DLL 方法

c# - 选中复选框时获取 gridview 行值

c# - 使用按钮从 GridView 和数据库中删除记录

javascript - 更新查询字符串(无重定向),无需 HTML 5

javascript - 一次点击打开 2 个页面,但不是同时打开

javascript - Accordion - 切换 : 时更改背景颜色/图像

javascript - 单击图像切换音频 "start/stop"

javascript - 如何使用 Webpack 2 热重载 Sass?