Promise resolve返回的问题

export default function scoke(obj) {
  let o=obj;
  let a=[]
  return new Promise((resolve,reject) => {
     let ws=new  WebSocket(o.url);
          ws.onopen=()=> {
          //  let d=o && Object.keys(o.data).map(item => item += "=" + o.data[item]).join('&');
            // ws.send(JSON.stringify(o.data));
          }
          ws.onerror=(err) => {
            reject(err);
            
          }
          ws.onmessage=(d) => {
          //  这个地方。如何才能做到第二次 返回可以调用 上面 new 的pro对象,可以达到一直调用then
              resolve(JSON.parse(d.data));
          }
  })

}
阅读 3.3k
2 个回答

设计错误 . 消息理论上 有无限个, 那你岂不是要无限个 then ?

提供可以注册 事件回调 api

这么设计最大的问题,我觉得是把一个非 Promise场景,用Promise的api进行了封装。 你依然可以使用Promise的API方式调用,但是预期的效果却不是Promise,而是EventListener

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题