Javascript 等待angular在套接字连接后渲染元素
当有一个成功的套接字Javascript 等待angular在套接字连接后渲染元素,javascript,angularjs,sockets,socket.io,render,Javascript,Angularjs,Sockets,Socket.io,Render,当有一个成功的套接字connect并且angular渲染元素时,我想触发一个函数 Ex. <canvas id="{{currentUserId}}"></canvas> Ex。 我希望在代码中包含以下内容: socket.on('connect',function(){ until(<above canvas is present>) callMe(); }); socket.on('connect',function()){ 直至() c
connect
并且angular
渲染元素时,我想触发一个函数
Ex. <canvas id="{{currentUserId}}"></canvas>
Ex。
我希望在代码中包含以下内容:
socket.on('connect',function(){
until(<above canvas is present>)
callMe();
});
socket.on('connect',function()){
直至()
callMe();
});
找到了使用库的解决方案:
socket.on('connect',function(){
async.until(
function(){
return $('#canvasId').length > 0;
},
async.ensureAsync(
function(retry){
console.log('trying');
retry(null,null);
}
),
function(err,result){
console.log('rendered');
callMe();
}
);
});
解释如下:
async.until(test,async.ensureAsync(fn),callback){}
test : return true/false, if returns false fn will be called and this will repeat until true is returned and on that final callback is called
fn: do some action, for my case I just wanted to wait, so I am not performing any action
async.ensureAsync(fn) : ensures that one fn is called in one tick and prevents stack overflow if there are too many attempts
callback: is called when test returns true
能否将
回调
添加到调用套接字
的函数中?socket.on('connect',…)是一个事件,因此某些函数不会调用它。