.then() javascript not working

.then() javascript not working

本文关键字:not working javascript then      更新时间:2023-09-26

我正在尝试使用Skype网络SDK登录。我从一些教程中获取了用于登录的代码。这是代码:

$('#signin').click(function () {
        $('#signin').hide();
        log('Signing in...');
        //debugger;
        // and invoke its asynchronous "signIn" method
        client.signInManager.signIn({
            username: 'ridaiftikhar@hotmail.com',
            password: 'sdfafa2'
        }).then(function () {
            //log in worked!
            alert('Signed in');
            $('#loginbox').hide();
            $('#chatfunctions').show();
        }, function (error) {
            //Something went wrong.
            alert(error);
        });
});

我的问题是then中的第一个函数不起作用。如果我提供了非法用户名,它会向我显示错误消息,但即使我提供了正确的凭据,它也不会显示"已登录"警报。

从您的代码片段中,我看到您正在使用Hotmail帐户登录。您试图执行的登录代码是针对Skype for Business(而非Skype消费者)的Skype Web SDK的登录代码。请使用有效的Skype for Business帐户登录。另一件需要注意的事情是:如果您使用的是用户名+基于密码的身份验证,那么部署了Skype for Business的组织必须支持用户名+基于口令的身份验证。否则,登录将失败。

看起来client.signInManager.signIn正在返回一个Promise,而当前浏览器本机不支持Promise,尽管您可以使用Promise polyfill来实现这一点。

当只给定usernamepassword参数时,SDK会尝试通过转到lyncdiscover.hotmail.comlyncdiscoverinternal.hotmail.com来发现该用户的适当服务器的URL(因为给定的用户名是@hotmail.com)。由于这两个域都不存在,SDK不会得到响应,也不会解析/拒绝返回的promise对象。正如Sid所说,需要一个正确的S4B用户名才能登录

SDK确实返回了一个promise对象,但它不是本机promise——SDK有自己的polyfill。