gpt4 book ai didi

javascript - 如何在 JavaScript 中阻塞异步函数

转载 作者:可可西里 更新时间:2023-11-01 02:38:09 24 4
gpt4 key购买 nike

我需要用 JavaScript 编写一个函数,它通过调用异步函数返回一个状态。但是,调用方只接收值,不提供回调函数。我试过类似的东西:

function getState() {
var ret = null;
asyncCall("request",
function() { ret = "foo"; } // callback
);
while (ret === null)
; // block on the asynchronous call
return ret;
}

但是,循环永远不会结束......

有什么想法吗?谢谢。

最佳答案

我认为您正在寻找 StratifiedJS,http://stratifiedjs.org它允许你像你写的那样“编排”你的异步代码,请注意它像同步代码一样“写”,它不会阻止你的应用程序的其余部分。您可以通过加载 apollo js 库在任何地方使用它。

这就是它在分层 JavaScript 中的样子:

function getState() {
waitfor (var ret) {
// block on the asynchronous call
asyncCall("request", resume);
}
return ret;
}

当然有一些模块/库可以让它看起来像这样: http://onilabs.com/modules#http

function getState() {
return http.get("request");
}

关于javascript - 如何在 JavaScript 中阻塞异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4345945/

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