我正在使用纯JavaScript中的Websockets,并希望将Promises实现到Websocket函数中。我没有收到任何错误,但Promise不起作用。
使用以下代码,我可以成功连接到套接字服务器,但是Promise似乎被跳过,因为警报的输出始终为“failed”。
有人知道在这种情况下的问题是什么吗? 附注:我在最新的Google Chrome浏览器和最新的Mozilla Firefox浏览器中进行了测试,并且为此示例省略了一些基本的检查/错误处理。
function Connect()
{
server = new WebSocket('mysite:1234');
server.onopen = (function()
{
return new Promise(function(resolve, reject)
{
if (true)
{
resolve();
}
else
{
reject();
}
});
}).then = (function()
{
alert('succeeed');
}).catch = (function()
{
alert('failed');
});
}
server.onopen
设置为最后一个函数(即警报失败的函数)- 您可以更改.then
和.catch
为任何内容,它仍然会执行相同的操作... 实际上,这与var x =({})。then =({})。catch =({hello:'world'})
相同... x将是{hello:'world'}
,并且具有.then
和.catch
属性的中间对象将被丢弃。 - Jaromanda X