2017-05-08 91 views
-2

我有兩個函數:第一個開始預加載,第二個 - 做一個ajax請求,它得到2秒響應。 一個id通過兩個addEventListners啓動這兩個函數。 的任務是當第二個函數得到響應時,第一個函數不會等待。Js兩個函數使異步工作異步(獨立)

+0

請提供一個 [最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。 – George

回答

0

有異步功能的JS應該是一個概念:

異步功能上JS的工作原理承諾你可以在這裏閱讀更多關於它:https://developers.google.com/web/fundamentals/getting-started/primers/promises

異步函數的語法是

async function name(<parameters>) 
{ 
    statements 
} 

請訪問https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function瞭解更多信息,可以實現

異步執行像這樣:

Promise.resolve("World").then(console.log); // then callbacks are always asynchronous 
console.log("Hello"); 

或者乾脆:

setTimeout(function(){ 
    console.log('1'); 
}, 2000); 

console.log('2'); 
+0

功能likePromise(){ \t \t新無極(函數(解析,拒絕){ \t \t \t unAbleOrAbleSubmit( '無法'); \t \t \t的console.log( '無極:unAbleOrAbleSubmit'); \t \t \t決心(); \t \t})然後(函數(){ \t \t \t \t validateForm(); \t \t \t \t console.log('Promise:validateForm'); \t \t}); \t \t console.log('Promise:'); 。 \t \t/* unAbleOrAbleSubmit( '無法')然後(函數(){ \t \t \t返回validateForm(); \t \t})*/ \t} – Vadik

0
function likePromise(){ 
     new Promise(function(resolve, reject) { 
      unAbleOrAbleSubmit('unAble'); 
      resolve(); 
     }).then(function() { 
       validateForm(); 
     }); 
    } 

儘管如此代碼unAbleOrAbleSubmit( '無法');等待validateForm();