我在純Javascript中使用Websockets,我想實現Promises到Websocket函數中。我沒有得到任何錯誤,但承諾不起作用。Javascript - 在Websocket上使用承諾?
使用下面的代碼,我可以成功連接到socketserver,但Promise似乎被忽略,因爲警報的輸出總是「失敗」。
有人知道在這種情況下是什麼問題嗎? Ps:我在最新的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');
});
}
是什麼讓你覺得你可以連接成功? – bytesized
僅供參考:您的代碼會將'server.onopen'設置爲最後一個函數(警告失敗的函數) - 您可以將'.then'和'.catch'更改爲任何內容,它仍然可以執行相同的操作。和'var x =({})。then =({})。catch =({hello:'world'})... ... x將會是'{hello:'world'}'和中間對象與'.then'和'.catch'屬性被丟棄 –
感謝您的解釋,肯定有幫助! – Piet