如何在Javascript中创建异步函数?

如何在Javascript中创建异步函数?

看看这个电码 :

<a href="#" id="link">Link</a><span>Moving</span>$('#link').click(function () {
    console.log("Enter");
    $('#link').animate({ width: 200 }, 2000, function() {
         console.log("finished");            
    });    
    console.log("Exit");    
});

正如您在控制台中所看到的,“动画”函数是异步的,它是事件处理程序块代码的流。事实上:

$('#link').click(function () {
    console.log("Enter");
    asyncFunct();
    console.log("Exit");    });function asyncFunct() {
    console.log("finished");}

遵循代码块的流程!

如果我想创建我的function asyncFunct() { }有了这种行为,我如何使用javascript/jQuery?我认为有一种策略不需要使用setTimeout() 


不负相思意
浏览 1403回答 3
3回答

拉莫斯之舞

您无法创建真正的自定义异步函数。您最终将不得不利用本地提供的技术,例如:setIntervalsetTimeoutrequestAnimationFrameXMLHttpRequestWebSocketWorker一些HTML 5 API,如FileAPI、WebDatabaseAPI支持的技术onload..其他许多实际上,对于动画jQuery使用&nbsp;setInterval.

慕姐8265434

您可以使用计时器:setTimeout(&nbsp;yourFn,&nbsp;0&nbsp;);(在哪里yourFn是对您的函数的引用)或者,用罗达什:_.defer(&nbsp;yourFn&nbsp;);调用func直到当前调用堆栈清除为止。任何附加参数都提供给func当它被调用的时候。
打开App,查看更多内容
随时随地看视频慕课网APP