我有以下功能:
function pickContacts() {
var output = "";
// Create the picker
var picker = new Windows.ApplicationModel.Contacts.ContactPicker();
picker.commitButtonText = "Select";
var emailsPromise = new WinJS.Promise(function () {
// Open the picker for the user to select contacts
picker.pickMultipleContactsAsync().then(function (contacts) {
if (contacts.length > 0) {
// Get selected e-mails
contacts.forEach(function (contact) {
contact.emails.every(function (email) { output += email.value + ";"; });
});
return output;
} else {
return "";
}
});
});
return emailsPromise;
};
这为我提供了来自选定联系人的电子邮件地址列表。所以接下来我想使用它;这是我的代码:
document.getElementById("findEmail").addEventListener("click", function () {
var emailAdd = document.getElementById("email");
pickContacts().done(function (emails) {
emailDets.value = emails;
});
});
但是我没有从 pickContacts 获得返回值(我已经确定它实际上是返回的)。我猜我处理返回的承诺的方式有问题,但我似乎无法调试它(试图进入它只会退出函数)。
我究竟做错了什么?