gpt4 book ai didi

javascript - Node.js 服务器中的同步 ajax

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:00 25 4
gpt4 key购买 nike

我正在尝试使用我粘贴的这个函数从一系列跨域 URL 中获取 html 代码,如果我异步执行此操作,我将成功获取所需的 html;但是,我很难让该功能之外发生的所有其他事情正常工作。正如我现在所拥有的那样,同步执行此操作将使该函数之外的所有内容都按其应有的方式工作,但我的 ajax 调用都没有成功,并且 this.url 未定义。

顺便说一句,我正在使用 jquery Node 模块来执行此操作。

这是在控制台中记录的错误:[类型错误:无法读取未定义的属性“ header ”]

任何帮助将不胜感激。

function myFunction( catname, myurl ){

var htmlresult="";

$.ajax({
type: "GET",
url : "http://"+myurl,
dataType: 'html',
context: this,
async: false,
cache: false,
error: function(xhr, status, ethrown){
console.log("THERE WAS AN ERROR");
console.log(this.url);
console.log(catname);
console.log(status);
console.log(ethrown);

htmlresult = myurl;
},
success : function(result){
console.log(this.url);
console.log("SUCCESS");
console.log(catname);
//console.log(result);

htmlresult = result;
}
})

return htmlresult;
}

感谢您花时间阅读本文。

最佳答案

在这种情况下,您不应该真正使用同步请求模式来完成您的工作。如果您正在使用 Node 并希望以同步方式执行某些工作,您应该使用 Promise/Deffered 概念。请参阅下面的示例

var Deferred = require("promised-io/promise").Deferred;
var def = new Deferred();

request(this.getUrl("statusObject"), function(err, resp, body) {
if(!err){
def.resolve(body);
}
}

def.promise.then(function(val){
//Do something.
});

关于javascript - Node.js 服务器中的同步 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17478477/

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