我知道,我们可以使用基于承诺的HTTP客户端就像Axios公司使用再API这样替代jQuery的时候
axios(url).then(success, error)
,但如果我想送2个同时Ajax请求,我仍然要恢复使用jQuery的$。当
$.when(promise1, promise2).then(success, error)
什么是替代$。当如果我不想用沉重的库如jQuery,并使用一些轻量级库。
我知道,我们可以使用基于承诺的HTTP客户端就像Axios公司使用再API这样替代jQuery的时候
axios(url).then(success, error)
,但如果我想送2个同时Ajax请求,我仍然要恢复使用jQuery的$。当
$.when(promise1, promise2).then(success, error)
什么是替代$。当如果我不想用沉重的库如jQuery,并使用一些轻量级库。
使用$ Q库:https://github.com/kriskowal/q 你的目的,你可以使用$Q.all
您可以使用Promise.all()
Promise.all([promise1, promise2]).then(success, error);
供参考:缺少IE支持 – epascarello
什么库将给我的Promise对象? – Prabhas
@Prabhas浏览器不需要任何库。 'Promise.all()'可以在铬,铬32+,火狐29+,歌剧19+,Safari 7.1或更高版本中使用https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects /无极/所有 – guest271314
由于我们的朋友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〜
或代码的东西你自己,这并不难做到。 – epascarello