gpt4 book ai didi

javascript - Promise 响应参数丢失

转载 作者:行者123 更新时间:2023-12-04 00:19:25 25 4
gpt4 key购买 nike

我正在学习浏览器提供的 promises,但我遇到了响应参数丢失和无法通过的问题。这是我的代码:

/* uploads a resource to the given server and runs the callback function when done */
function upload(serverUrl, resource, successfulCallback, failCallback) {
console.log("upload successfulCallback: ", successfulCallback);
console.log("upload failCallback: ", failCallback);
var jqxhr = $.ajax({
url: serverUrl,
method: "POST",
type: "POST",
contentType: "application/json",
data: encode(resource),
headers: {
Accept: "application/json; charset=utf-8",
Prefer: "return=minimal"
}
}).done(function() {
console.log("Upload done, jqxhr: ", jqxhr);
successfulCallback(jqxhr);
}).fail(function(err) {
console.log("upload failed: " + err.responseText);
failCallback(jqxhr, err);
});
}

function validate(endpoint, resource) {
var parameters = {
"resourceType": "Parameters",
"parameter": [{
"name": "resource",
"resource": resource
}]
};

return new Promise(function (resolve, reject) {
console.log("Made new promise, resolve function is: ", resolve);
console.log("Made new promise, reject function is: ", reject);
upload(endpoint + '/' + resource.resourceType + "/$validate", parameters, resolve, reject);
});
}

这就是我使用它的方式:

    validate("http://fhir3.healthintersections.com.au/open", decode(leftFhirView.getValue()))
.then(function(response) {
console.log("It worked! '", response, "'");
}, function(error) {
console.error("Failed validation!", error.stack);
});

这是我运行时得到的调试输出

main.js:45 Made new promise, resolve function is:  u() { [native code] }
main.js:46 Made new promise, reject function is: v() { [native code] }
main.js:14 upload successfulCallback: u() { [native code] }
main.js:15 upload failCallback: v() { [native code] }
main.js:27 Upload done, jqxhr: Object {readyState: 4, responseText: "", <snip>
main.js:196 It worked! ' '

如您所见,在 successfulCallback(jqxhr) 和响应函数之间的某处,我的 jqxhr 变成了两个空格。发生了什么事?

最佳答案

通过验证函数一直返回 jQuery promise 来修复它。

关于javascript - Promise 响应参数丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40570233/

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