我有以下代码来选择多个联系人,并仅过滤具有 XYZ 的名称。我正在使用 then 和 did 来完成这个过滤器。在我的联系人中,有一个名为 XYZ Dude 的联系人,我也选择了它。在我在 then 方法中应用过滤逻辑之后,这个联系人不应该在我的 did 方法中传递吗?任何想法我可能做错了什么
var picker = new Windows.ApplicationModel.Contacts.ContactPicker();
// Open the picker for the user to select a contact.
picker.pickMultipleContactsAsync().then(function (contacts) {
var contactsStartingWithPrefixPa = contacts.filter(function filterContacts(contact) {
if (contact.name.match(/XYZ/))
return true;
return false;
});
}).done(function (contacts) {
// code never reaches here
if (contacts != null ) {
contacts.forEach(function (contact) {
if (contact !== null) {
// logic to use this contact
}
}
)}
});
最佳答案
then函数中需要返回contactsStartingWithPrefixPa
。
// Open the picker for the user to select a contact.
picker.pickMultipleContactsAsync().then(function (contacts) {
var contactsStartingWithPrefixPa = contacts.filter(function filterContacts(contact) {
if (contact.name.match(/XYZ/))
return true;
return false;
return contactsStartingWithPrefixPa;
});
关于javascript - promise 链不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16576927/