我想让一个函数执行完再执行下一个要怎样做呢?
Google 了一下「JavaScript 异步」,很多都不知道在说什么。
看过这篇: http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
也了解过一点点 jQuery 的 .queue(),但是没看懂。
我的想法是这样的:
hrml
<p> <span id="num1">0</span> + <span id="num2">0</span> = <span id="num3">0</span> </p> <ol id="Result"><ol>
javascript
function _a (a,b) { setTimeout(function () { document.getElementById('num1').innerHTML = a; },1000); setTimeout(function () { document.getElementById('num2').innerHTML = b; },1000); setTimeout(function () { document.getElementById('num3').innerHTML = a+b; },1000); setTimeout(function () { $('#Result').append('<li>'+(a+b)+'</li>'); },1000); } _a(1,2); _a(1,3); _a(1,4);
需要怎样才能让 _a(1,2)
执行完才执行 _a(1.3)
?
如果这个执行顺序后来继续添加 _a(1,5)
呢?
PHP中文网2017-04-10 14:51:06
推荐看下这篇文章:http://krasimirtsonev.com/blog/article/7-lines-JavaScript-library-for-calling-asynchronous-functions
http://jsfiddle.net/wedxc50f/1/
阿神2017-04-10 14:51:06
推荐你一个比较好用的异步工具 async.js
javascript
async.series([ function(callback){ setTimeout(function(){ // do something callback(null); }, 1000); }, function(callback){ setTimeout(function(){ // do something callback(null); }, 1000; }], function(err) { // all tasks are done });
迷茫2017-04-10 14:51:06
怎么没有人提到promise呢?
推荐When.js文章,When是一个promise库:
https://www.imququ.com/post/promises-when-js.html