作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我需要 POST item1 然后等待响应,然后 POST item2 等等,但我不知道项目的数量,我只知道它们需要按顺序排列。
for(item in array){
request({
uri: 'http://some.url/',
method: 'POST',
data: item
}, function(clbck){
<request with data item2 and so on>
})
}
依此类推,直到 request(n) 没有完成。
如何在不知道数量的情况下链接请求?
最佳答案
这个问题的解决方案是一个惊人的异步/等待函数。但是我在回调中使用了它们,我需要对其进行原始化。
// init a async function
const post_message = async (id, array) => {
// init loop of requests
for(let iter = 0; iter<array.length; iter++){
// lets wait for promise to resolve or reject (no need to return anything)
await new Promise(function(resolve,reject){
request({
uri: 'my_post_url',
method: 'POST',
json: {data: my_data}
},function(error,response,body){
if(error) {
reject('REJECTED')
} else {
resolve('RESOLVED')
}
})
})
}
}
瞧,我们可以链接(等待)请求一个接一个,这里的关键是等待在 promise 上寻找解决或拒绝(然后,捕获),等待不关心回调或返回或尝试/捕获方法...
关于javascript - 如何在不知道请求数量的情况下链接 Javascript ajax 请求。 ( Node ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45730801/
我是一名优秀的程序员,十分优秀!