我对使用 Promise 有点陌生,并且在返回对象时遇到了问题。我有以下函数调用 SPServices 从列表中检索一项。我知道 SPService 调用正在返回列表项,但返回的数据未定义:
$('.support-View').on('click', function () {
var thisID = $(this).data("id");
var message = getOneDetails(thisID);
console.log("This Data : " + message); //<-- Comes back undefined
$.when(message).done(function() {
thisMessage = message;
viewRequestDialog(thisID, message);
});
});
getOneDetails 函数如下所示:
function getOneDetails (thisID, viewtype) {
var CAML = '<Query><Where><Eq><FieldRef Name="Title" /><Value Type="Text">' + thisID + '</Value></Eq></Where></Query>';
var list = 'Support Requests';
var requestsPromise = $().SPServices.SPGetListItemsJson({
listName: list,
CAMLQuery: CAML,
includeAllAttrs: true
});
$.when(requestsPromise).done(function() {
requestData = this.data;
console.log(this.data); //<---- Data is defined here
})
.then(function(requestData) {
console.log(requestData); //<---- But undefined here
return requestData;
});
}
我确定我遗漏了一些简单的东西,但是我如何简单地从 promise 函数返回对象?TIA