屈服函数结果
Yield function result
我基本上想有一个函数来获取页面,然后在此基础上返回结果,这导致了以下问题:
所有GET方法都使用回调函数,这意味着函数将在结果出现之前结束。如何暂停线程直到触发回调,然后在主函数中返回回调结果?
function someFunction(){
$.get(
"blabla.php",
function(data) {
// This data is supposed to be returned by "someFunction"
}
)
return //the data we retrieved from 'blabla.php'
}
你将如何做到这一点?
编辑:我从lua中知道这个概念,但我不完全确定是否有人会称之为"产生函数结果"。如果我错了,请纠正我。
正确答案:不要。异步是处理HTTP请求的正确方式。然而,在某些情况下,您希望在等待结果时进行阻止,因此在这些情况下:
使用async
参数。
function somefunction() {
var retVal;
$.ajax({
url: "blabla.php",
success: function(data) {
// modify data here
retVal = data;
},
async: false
});
return retVal;
}
与其从函数中返回一些东西,为什么不将回调作为参数呢?
function someFunction(callback) {
$.get("blabla.php", function (data) {
callback(data);
});
// Or simply $.get("blabla.php", callback) if the data need not be modified before calling the callback.
}
然后可以这样使用:
someFunction(function (data) {
alert("Data received!");
});
JavaScript是单线程的,所以这确实是在不阻塞整个脚本的情况下完成类似任务的唯一合理方法。
相关文章:
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- 函数式javascript读取、异步、写入结果
- 函数hide()、prev()、show()被组装以获得所需的结果,但无法理解其工作原理
- JScript 错误: 无法分配给函数结果
- 仅在第一个结果中显示/隐藏MySQL结果函数
- 从Mongoose结果匿名函数返回父函数
- MeteorJS从上一个函数中检索JS中的结果
- 如何在函数外返回此操作的结果
- 将web服务回调的结果绑定到Javascript中的调用函数
- 原型中漂亮的代码,如何省略'不是函数'空结果选择器上的错误
- 如何在使用函数document.write()打印最终结果后,使用Javascript滚动到页面顶部
- 为什么我的javascript地理编码函数返回空白结果
- toFixed javascript函数给出奇怪的结果
- Node Express Handlebars帮助程序未返回函数的结果
- 正在等待HTTP调用从函数返回结果
- 如何根据JavaScript函数的结果用PHP编写数据库?(FB应用程序)
- Firebase 使用外部查询结果函数
- Javascript 全局数组在 JSON 结果函数中不可见