javascript - Promise response argument getting lost -
i'm learning browser-provided promises , i'm having difficulty response argument getting lost , not coming through. code:
/* uploads resource given server , runs 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); }); }
and how make use of it:
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); });
here's debugging output when run
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 worked! ' '
as can see, somewhere between successfulcallback(jqxhr) , response function, jqxhr turns 2 spaces. happening?
fixed returning jquery promise way through validate function.
Comments
Post a Comment