.then() javascript 不工作

.then() javascript not working

我正在尝试使用 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 中的第一个函数不起作用。如果我提供非法用户名,它会显示错误消息,但即使我提供了正确的凭据,它也不会显示 "Signed In" 警报。

好吧,似乎 client.signInManager.signIn 正在返回一个 Promise,目前浏览器本身不支持 promise,尽管你可以使用 promise polyfill 让它工作。

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

当仅给出 usernamepassword 参数时,SDK 会尝试通过转到 lyncdiscover.hotmail.com 和 [ 来为该用户发现合适服务器的 URL =13=](因为给定的用户名是 @hotmail.com)。由于这两个域都不存在,SDK 不会得到响应,也不会 resolves/rejects returned promise 对象。正如 Sid 所说,需要正确的 S4B 用户名才能登录。

SDK 确实 return 一个 promise 对象,但它不是本机 Promise - SDK 有自己的 polyfill。