gpt4 book ai didi

javascript - 异步调用函数

转载 作者:行者123 更新时间:2023-12-02 17:29:48 25 4
gpt4 key购买 nike

我想发起一个数据库请求,这需要一些时间并使用整数 (42) 进行响应。dbRequest() 中的 setTimeout 代表此请求。

在函数initRequest中,响应的整数应该加1。因此 initRequest 应返回 43

var dbRequest = function () {

setTimeout(function(){
console.log('Hello World! => 42');
return 42;
}, 5000);

};

var initRequest = function (cb){
var test = cb() + 1;
console.log('Incremented Value: ' + test);
return test;
};

initRequest(dbRequest);

不幸的是,var test = cb() + 1; 没有等待 setTimeout 并使用 NaN 进行计算。输出:

Incremented Value: NaN
// 5 sec delay
Hello World! => 42

如何使该函数异步,以便 initRequest 等待 dbRequest 响应?

最佳答案

完全不知道您的情况,但为了获得理想的结果,您可以这样做。

var dbRequest = function (callback) {
setTimeout(function(){
console.log('Hello World! => 42');
callback(42);
}, 5000);
};

function initRequest(val){
var test = val + 1;
console.log('Incremented Value: ' + test);
}

dbRequest(initRequest);

在特定时间后调用回调函数,并通过此调用的函数传递值以执行所需的操作。

关于javascript - 异步调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23171154/

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