javascript - promise 链不起作用。为什么?

标签 javascript windows-8 windows-runtime winjs promise

我有以下代码来选择多个联系人,并仅过滤具有 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/

相关文章:

javascript - 正则表达式仅将按键作为事件

javascript - 在 VS Express 2013 的 Javascript 控制台中显示错误文件/行

c# - 从 Windows 8 Metro 风格应用建立与 Dynamics CRM Online Web 服务的连接

xaml - 拉伸(stretch)的 Windows 应用商店 Logo

c# - Windows 应用商店应用程序中的 Grid.ShowGridLines

javascript砌体不工作

javascript - React - 当另一个 React-Select 更改时如何清除 React-Select 的值

javascript - 当 div 模糊检查内容更改时?

Android SDK 管理器无法在 Windows 8 x64 上获取存储库

c# - SQLite for WinRT 未通过 Windows 应用程序认证套件