用函数中的值更新全局变量;它被存储在一个变量中

Updating a global variable with a value thats in a function; which is stored in a variable

本文关键字:变量 一个 存储 函数 更新 全局变量      更新时间:2023-09-26
function event() {
    var hold = "";
    var oArgs = {
        page_size: String(pgsize)
    };
    var wow = EVDB.API.call("/events/search", oArgs, ow = function(oData) {
        hold = oData.events.event[0].description
        return console.log(hold);
    });
    $("#shower").append("<li>" + hold + "</li>");
}

我希望id淋浴保存我的console.log的值。它只是输出目前未定义,我知道我可以简单地将'hold'附加在'ow'中,但我的意图是返回'hold'值并在与event()不同的外部函数中使用它。

在异步编程中,唯一可以可靠地使用异步操作结果的地方是在传递该结果的回调内部。这是因为async调用在将来某个不确定的时间被调用,同时其他代码继续运行。同样,你也不能从异步回调中返回值。

那么,你可以这样做:

function event() {
    var oArgs = {page_size: String(pgsize)};
    EVDB.API.call("/events/search", oArgs, function(oData)
        $("#shower").append("<li>" + oData.events.event[0].description + "</li>");
    });
}

我还删除了对this的所有引用,因为在这个函数中没有明确的对象创建,可以为this提供适当的上下文