Rya*_* Li 10 javascript asynchronous
我需要在JavaScript中编写一个函数,它从调用异步函数返回一个状态.但是,调用者只接收该值,并且不提供回调函数.我尝试过类似的东西:
function getState() {
var ret = null;
asyncCall("request",
function() { ret = "foo"; } // callback
);
while (ret === null)
; // block on the asynchronous call
return ret;
}
Run Code Online (Sandbox Code Playgroud)
然而,循环永远不会结束......
有任何想法吗?谢谢.
小智 9
我认为你正在寻找StratifiedJS,http://stratifiedjs.org 它允许你像你写的一样"编排"你的异步代码,请注意它"写"像同步代码,它不会阻止你的应用程序的其余部分.您可以通过加载apollo js库在任何地方使用它.
这就是分层JavaScript中的样子:
function getState() {
waitfor (var ret) {
// block on the asynchronous call
asyncCall("request", resume);
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
当然有些模块/库只会让它看起来像这样:http: //onilabs.com/modules#http
function getState() {
return http.get("request");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22282 次 |
| 最近记录: |