2017-02-11 44 views
0

我知道,我们可以使用基于承诺的HTTP客户端就像Axios公司使用再API这样替代jQuery的时候

axios(url).then(success, error) 

,但如果我想送2个同时Ajax请求,我仍然要恢复使用jQuery的$。当

$.when(promise1, promise2).then(success, error) 

什么是替代$。当如果我不想用沉重的库如jQuery,并使用一些轻量级库。

+1

或代码的东西你自己,这并不难做到。 – epascarello

回答

1

使用$ Q库:https://github.com/kriskowal/q 你的目的,你可以使用$Q.all

+0

即时消息不使用角度 – Prabhas

+0

它不依赖于角度。更确切地说,使用这个库作为核心来实现它的实现。你可以在你想要的浏览器中运行它,看看它是否会工作。 – Rikin

1

您可以使用Promise.all()

Promise.all([promise1, promise2]).then(success, error); 
+0

供参考:缺少IE支持 – epascarello

+0

什么库将给我的Promise对象? – Prabhas

+0

@Prabhas浏览器不需要任何库。 'Promise.all()'可以在铬,铬32+,火狐29+,歌剧19+,Safari 7.1或更高版本中使用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects /无极/所有 – guest271314

0

由于我们的朋友Rikin上面说的,用品质图书馆绝对是一个不错的选择。如果任何请求参数失败,jQuery.when()不会继续请求。 Q有使这成为可能的方法。看,假设你有fn1和fn3给你HTTP 200和fn2返回HTTP 404,这种方法Q.allSettled它会工作得很好。

Q.allSettled([fn1(), fn2(), fn3()]) 
.then(function(f1Result, f2Result, f3Result) { 
    // your code that will run every time... 
}); 

如果你需要使用它在你的Web项目,请按照下列步骤操作(您将需要安装在你的机器npm):

1)进入https://github.com/kriskowal/q和克隆/下载回购。

2)然后到您克隆回购的文件夹并运行npm install

3)最后,npm run minify。它会生成q.min.js,你可以在你的项目中使用。

欲了解更多信息,请至Q维基参考:https://github.com/kriskowal/q/wiki/API-Reference

Cheeers〜